【发布时间】:2017-10-17 05:40:44
【问题描述】:
下面发布的代码是一个客户端-服务器代码,它会抛出 http 500 错误,这是因为服务器抛出了一些异常。我实际上想将异常(在服务器端产生)发送到客户端,以便了解 http 500 错误的原因。为了发送堆栈跟踪,我正在使用这一行 return Response.status(200).entity(err).build(); 但在客户端没有打印任何内容。请查看我的代码并告诉我如何从服务器获取抛出异常的堆栈跟踪?
ReactJS 客户端:
saveChanges(newRecordsArray) {
$.ajax({
type: "POST",
url: "http://localhost:8080/UserManagement/rest/myService/save",
dataType: "json",
contentType:'application/json',
data: newRecordsArray,
async: false
}).then((function(err) {
{console.log(err);}
}).bind(this));
}
Java 服务:
@POST
@Path("/save")
@Consumes(MediaType.APPLICATION_JSON)
public Response saveNewRecords(JSONArray newRecordsArray) {
try {
File recordsFile = new File("C:\\Users\\username\\Desktop\\myJSON.txt");
FileWriter fileWriter = new FileWriter(recordsFile);
fileWriter.write(newRecordsArray.toString());
fileWriter.close();
}
catch (Exception e) {
String err = e.getClass().toString();
return Response.status(200).entity(err).build();
}
return Response.status(200).entity(newRecordsArray.toString()).build();
}
【问题讨论】:
-
为什么要在 catch 块中发送 200 OK?您实际上是否首先获得了堆栈跟踪?我不这么认为,至少对于那个代码。
标签: java ajax reactjs web-services client-server