【发布时间】:2018-03-02 15:05:30
【问题描述】:
我的球衣服务器有以下异常映射器:
@Provider
public class ExceptionResponseMapper implements ExceptionMapper<Throwable> {
Logger logger = Logger.getLogger(ExceptionResponseMapper.class);
@Override
public Response toResponse(Throwable e) {
log.error(e);
Response response = Response.status(500)
.entity(e)
.build();
return response;
}
}
我使用 config.register(ExceptionResponseMapper.class); 手动注册此提供程序
异常映射器对我的 REST 资源类中抛出的异常非常有效,但构造函数中的异常除外。
例如。
@Path("/MyResource")
public class MyResource {
public MyResource() {
throw new RuntimeException();
}
}
不会调用异常映射器。我该如何处理这种异常情况?
【问题讨论】:
-
为什么还要在构造函数中产生副作用?注入的资源应在注入前进行验证。而且这里的构造函数没有参数,那么用例是什么?
-
我在升级 Jersey 时遇到了这个问题。它在 1.19 中工作,但在 2.x 中失败。为什么一个有效的案例现在变得无效了?
-
为此创建了泽西岛问题:github.com/eclipse-ee4j/jersey/issues/4436
-
也许
ExceptionMapper<MultiException>可以帮忙:stackoverflow.com/questions/28858450/…