fed*_*lov 3 exception-handling jersey dropwizard
我创建了实现implements ExceptionMapper<WebApplicationException>和注册它的类environment.addProvider(new WebApplicationExceptionMapper());.我的自定义映射器可以工作,但只适用于扩展的一些例外WebApplicationException.例如,它不起作用ConflictException,它也不适用于我的自定义异常与以下构造函数:
public ConflictException(URI location, Object entity) {
super(Response.status(Response.Status.CONFLICT).location(location).entity(entity).build());
}
Run Code Online (Sandbox Code Playgroud)
如果我将删除它将工作super(Response.status.....这很奇怪,我无法解释这一点.我不确定是它Jersey还是Dropwizard行为.
为所有WebApplicationException子类和子类配置映射器的正确方法是什么?你能解释一下我遇到的问题吗?
可能有点太晚了,但发现这个有用.
对于0.8以上的dropwizard
在yaml配置中
server:
registerDefaultExceptionMappers: false
Run Code Online (Sandbox Code Playgroud)
这将禁用DWs默认异常映射器,然后添加自己的异常映射器
// Register the custom ExceptionMapper(s)
environment.jersey().register(new RestErrorsHandler());
Run Code Online (Sandbox Code Playgroud)
来源:github问题
| 归档时间: |
|
| 查看次数: |
3949 次 |
| 最近记录: |