当 Jersey 发生 500 服务器错误时,如何获取堆栈跟踪?

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

在球衣服务器中出现服务器 500 错误:

我尝试在服务器中捕获异常并在控制台中打印跟踪,但没有任何反应

发生 500 服务器错误时如何获取堆栈跟踪?

大多数时候,通用 ExceptionMapper 就可以了。

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

那就注册吧

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

有时候异常没有被映射时,异常会被Jersey吞掉,你看不到发生了什么。当问题出在 Jersey 级别时,这通常有效。

另请参阅: