【发布时间】:2012-04-21 07:03:02
【问题描述】:
我正在尝试处理来自我的后端的错误。如果发生错误但内容是 XmlMessage 的实例,则调用 handleMessage()。我想将其更改为我自己的响应 - 只需设置响应代码并添加一些消息。
我没有找到任何合适的文档可以告诉我如何执行此操作...
这些示例用于 REST,但我也想在 SOAP 中管理这个东西。
拦截器
public class ErrorHandlerInterceptor extends AbstractPhaseInterceptor<Message> {
public ErrorHandlerInterceptor() {
super(Phase.POST_LOGICAL);
}
@Override
public void handleMessage(Message message) throws Fault {
Response response = Response
.status(Response.Status.BAD_REQUEST)
.entity("HOW TO GET A MESSAGE FROM AN EXCEPTION IN HERE???")
.build();
message.getExchange().put(Response.class, response);
}
}
context.xml
<bean id="errorHandlerInterceptor"
class="cz.cvut.fit.wst.server.interceptor.ErrorHandlerInterceptor" />
<jaxrs:server address="/rest/">
<jaxrs:serviceBeans>
<ref bean="restService" />
</jaxrs:serviceBeans>
<jaxrs:outFaultInterceptors>
<ref bean="errorHandlerInterceptor" />
</jaxrs:outFaultInterceptors>
</jaxrs:server>
【问题讨论】:
标签: java rest soap error-handling cxf