我还没有找到上述问题的答案。如何从 InjectableProvider 抛出异常,并在 ExceptionMapper 中捕获,以便提供自定义响应?
问问题
263 次
1 回答
1
亚历克斯,帕维尔,
我自己尝试过:
- Joda
DateTime
可注射供应商:PerRequestTypeInjectableProvider<PathParam, DateTime>
- 一个映射器,它将异常转换为可序列化的对象,以客户端接受的格式(XML、JSON 等):
ExceptionMapper<WebApplicationException>
根据我的实验,似乎任何WebApplicationException
抛出的东西都会InjectableProvider
绕过异常映射器,因此格式不正确。
我也试过:
- 添加一个
ExceptionMapper<ParamException>
, - 重命名类,希望它们的连接顺序遵循字母顺序,
但到目前为止还没有运气。
@ Pavel /来自泽西岛的任何人:欢迎任何建议!
谢谢,
马克。
更新
如果将逻辑包装在InjectableProvider
/try
块catch
中,那么在catch
块中,诀窍是:
- 创建您的可序列化 POJO /您的自定义响应,
javax.ws.rs.core.Response
用适当的状态码和/或媒体类型将其包装成一个,WebApplicationException
将其作为实体参数传递给,。
@ Pavel / 来自泽西岛的任何人:有什么替代方法可以避免这种额外的逻辑并使事情“正常工作”?
于 2012-11-29T17:13:50.483 回答