Исключить stackTrace из ответа json WebApplicationException - PullRequest
0 голосов
/ 19 сентября 2019

Когда я вызываю свою конечную точку отдыха / 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.

...