mavenjersey-2.0grizzly

How can I get the stack trace when 500 server error happens in Jersey?


When in jersey server I have server 500 error:

I try to catch exception in server and print trace in console, but nothing happens

How can I get the stack trace when 500 server error happens?


Solution

  • Most of the time, a generic ExceptionMapper will do the trick.

    @Provider
    public class DebugMapper implements ExceptionMapper<Throwable> {
        @Override
        public Response toResponse(Throwable t) {
            t.printStackTrace();
            return Response.serverError()
                .entity(t.getMessage())
                .build();
        }
    }
    

    Then just register it

    ResourceConfig config = new ResourceConfig()
            .register(DebugMapper.class);
    

    Sometime the exception will get swallowed by Jersey when the exception is not mapped, and you will not see what happened. This usually works, when the problem is at the Jersey level.

    See also: