Jersey Exception Mapper不处理Resource Constructor中的异常

时间:2018-03-01 15:41:40

标签: java jersey

我的jersey-server有以下Exception Mapper:

@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资源类中抛出的异常,Exception Mapper非常适用,但构造函数中的异常除外。

例如

@Path("/MyResource")
public class MyResource {

    public MyResource() {
        throw new RuntimeException();
    }
}

不会调用Exception Mapper。我该如何处理这种例外情况?

1 个答案:

答案 0 :(得分:0)

当您的资源由Spring或CDI创建时,Jersey Context还没有准备好,但我的猜测是(如果您使用的是DI框架)。