满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述Jersey Exception Mapper不处理Resource Constructor中的异常相关的知识,希望能为你提供帮助。
【Jersey Exception Mapper不处理Resource Constructor中的异常】我的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);
手动注册此提供程序除了构造函数中的异常之外,Exception Mapper对我的REST资源类中抛出的异常非常有效。
例如。
@Path("/MyResource")
public class MyResource {public MyResource() {
throw new RuntimeException();
}
}
不会调用Exception Mapper。我该如何处理这种例外情况?
答案当您的资源由Spring或CDI创建时,Jersey Context尚未就绪,但我的猜测是(如果您使用的是DI框架)。
推荐阅读
- Jersey初始化功能(在Application对象或ServletContextListner中)
- java.lang.NoSuchMethodError(org.glassfish.jersey.server.ApplicationHandler。)
- 在ExceptionMapper中注入单例
- Jersey(如何注册省略某些子类的ExceptionMapper())
- 在Jersey webapp中运行Angular2应用程序
- Jersey ExceptionMapper未被调用
- 找不到模块(无法解析'./AppRoutes')
- 将Redux SubApp与React Router配合使用
- 在android中获取位置地址时出错