Когда я вызываю свою конечную точку отдыха / javax.rs.ws.resource.
@POST
@Path("/{id}")
public Stuff updateStuff() {
try {
return doStuff();
} catch (Exception ex) {
throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(ex).build());
}
И происходит исключение, я получаю хороший JSON:
{
"cause": null,
"stackTrace": [
................................
],
"statusCode": 0,
"entity": null,
"message": "404 Not Found\n",
"localizedMessage": "404 Not Found\n",
"suppressed": []
}
Возможно ли это как-тоисключить / скрыть поле stackTrace (которое происходит от Throwable
) из сериализации в json.
Я знаю, что могу создать исключение MyWebApplicationException, расширяющее исключение WebApplicationException:
final ErrorResponseData errorResponseData = new ErrorResponseData(
String.valueOf(ex.getStatusCode()),
ex.getMessage(),
ex.getCause().getMessage()
);
throw new MyWebApplicationException(Response.Status.INTERNAL_SERVER_ERROR ,errorResponseData);
Но почему быМне нужно создать отдельную структуру, если мне нужно избавиться от полей, которые есть только в Throwable.