0
私はこの角度クライアントコードがあります。http応答のサーバーステータスコードを設定する方法は?
$http.put('api/Voices/updateVoice', {voice : voice, isAddMode : isAddMode}).then(
function successCallback(response) {
lastUpdateStatus = response.data;
deferred.resolve(response.data);
}, function errorCallback(response) {
var responseStr = JSON.stringify(response)
console.log("server error: "+responseStr);
deferred.reject(response.data);
});
return deferred.promise;
と、このJavaサーバコード: JAX-RSのレスポンスオブジェクトを返します。
@Path("/foo")
@PUT
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
public Response updateVoice(VoiceUpdateRequest voiceUpdateRequest) throws Exception {
try {
voicesInDb = rulesUiRepository.getUiVoices();
logger.info("ACTION-LOG: " + (voiceUpdateRequest.isAddMode ? "Add" : "Edit") + " voice: " + voiceUpdateRequest.voice);
logger.info("ACTION-LOG: DB state: " + voicesInDb);
boolean isAddMode = voiceUpdateRequest.isAddMode;
VoiceUi voiceUi = voiceUpdateRequest.voice;
// validateVoiceUi(voiceUi);
if (!isAddMode) { //edit mode
voicesInDb.remove(voiceUi);
} else {
voiceUi.orderIndex = voicesInDb.nextAvailableVoiceId;
voicesInDb.nextAvailableVoiceId++;
}
voicesInDb.insert(voiceUi);
OperationType operationType = isAddMode ? OperationType.ADD : OperationType.EDIT;
updateDbAndCofman(operationType, voiceUi.id);
}
catch (Exception ex)
{
String error = "error: "+ ExceptionUtils.getMessage(ex)+"---->---> trace: "+ExceptionUtils.getStackTrace(ex);
logger.error("update voice filed. "+error);
return Response.status(500).entity(error).build();
}
return Response.ok().build();
}
私はそれは、クライアントが呼び出すためにコールバックしている知っているので、私は応答ステータスコードを設定するにはどうすればよいresponse
私のカスタムモデルを使用するので、それを書き換えしようとしましたか?
@Path("/foo")
@PUT
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
public VoicesOperationResult updateVoice(VoiceUpdateRequest voiceUpdateRequest) throws Exception {
VoicesOperationResult voicesOperationResult = new VoicesOperationResult();
try {
...
}
catch (Exception ex)
{
voicesOperationResult.status = 500;
voicesOperationResult.message = ExceptionUtils.getMessage(ex);
voicesOperationResult.trace = ExceptionUtils.getStackTrace(ex);
return voicesOperationResult;
}
voicesOperationResult.status = 200;
return voicesOperationResult;
}
私の悪いです。今修正されました –