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 次 |
最近记录: |