Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用cxf覆盖http状态_Java_Cxf - Fatal编程技术网

Java 使用cxf覆盖http状态

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

我将CXF用于web服务。 由于一些客户端限制,我需要所有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");
}}
你能试试吗

msg.put(SoapMessage.RESPONSE_CODE, 200);

因此,它最终成为and Integer对象,而不是字符串。我想它应该是整数。

我确实得到了一个响应代码200,但响应本身是emptynow。。是否可以将此拦截器注册到所有端点?