Java 使用cxf覆盖http状态
我将CXF用于web服务。 由于一些客户端限制,我需要所有web错误返回代码200而不是500。 我尝试使用拦截器,这取决于我是否能够覆盖状态,然后响应为空,或者响应已满,但状态未被覆盖。 有什么办法吗? 使用拦截器,正确的阶段是什么? 我像这样注册了拦截器:Java 使用cxf覆盖http状态,java,cxf,Java,Cxf,我将CXF用于web服务。 由于一些客户端限制,我需要所有web错误返回代码200而不是500。 我尝试使用拦截器,这取决于我是否能够覆盖状态,然后响应为空,或者响应已满,但状态未被覆盖。 有什么办法吗? 使用拦截器,正确的阶段是什么? 我像这样注册了拦截器: @org.apache.cxf.interceptor.OutFaultInterceptors(interceptors = { "com.my.prod.core.service.itercept.HttpStatusIntercep
@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");
}}
你能试试吗
msg.put(SoapMessage.RESPONSE_CODE, 200);
因此,它最终成为and Integer对象,而不是字符串。我想它应该是整数。我确实得到了一个响应代码200,但响应本身是emptynow。。是否可以将此拦截器注册到所有端点?