Я использую CXF для веб-сервисов. Из-за некоторых клиентских ограничений мне нужно, чтобы все веб-ошибки возвращали код 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");
}}