以下のコードは、サーバーによってスローされた例外のために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のサービス:Response.status(200).entity(err).build()
は、あなたの例外オブジェクトにtoString()
メソッドを呼び出すため
@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を送信していますか?最初にスタックトレースを取得していますか?少なくとも、そのコードではそうは思わない。 – Kayaman