使用cxf覆盖http状态

时间:2011-07-23 12:51:09

标签: java cxf

我正在使用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");
}}

1 个答案:

答案 0 :(得分:2)

你能试试吗

msg.put(SoapMessage.RESPONSE_CODE, 200);

所以它最终为和Integer对象而不是String。我认为它期待整数。