1
WebサービスでCXFを使用しています。 いくつかのクライアントの制限のため、私はすべてのWebフォールトが500の代わりにコード200を返すようにする必要があります。 インターセプタを使用しようとしましたが、フェーズに依存してステータスを無効にしてから応答が空であるか、障害が発生してもステータスは上書きされません。 これを行うにはどのようなアイデアですか? インターセプタを使用すると、正しいフェーズは何ですか? 私はこのようなインターセプタ登録:httpステータスをcxfで上書きする
@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");
}}
私は応答コード200を取得しますが、応答自体は空です – FelixDox
はい!信仰の乏しい男です。 – FelixDox
今、このインターセプタをすべてのエンドポイントに登録できますか? – FelixDox