我正在使用CXF进行网络服务。 由于一些客户端限制,我需要所有Web故障返回代码200而不是500。 我试图使用拦截器,取决于我能够覆盖状态的阶段,然后响应为空或响应已满故障,但状态未被覆盖。 任何想法如何做到这一点? 使用拦截器,什么是正确的阶段? 我注册了这样的拦截器:
@org.apache.cxf.interceptor.OutFaultInterceptors(interceptors = { "com.my.prod.core.service.itercept.HttpStatusInterceptor" })
这是拦截器:
public class HttpStatusInterceptor extends AbstractSoapInterceptor {
public HttpStatusInterceptor(){
super(Phase.POST_STREAM_ENDING);
}
@Override public void handleMessage(org.apache.cxf.binding.soap.SoapMessage msg) throws org.apache.cxf.interceptor.Fault{
msg.put(SoapMessage.RESPONSE_CODE, "200");
}}
答案 0 :(得分:2)
你能试试吗
msg.put(SoapMessage.RESPONSE_CODE, 200);
所以它最终为和Integer对象而不是String。我认为它期待整数。