在执行之前拦截cxf soap

时间:2018-07-10 08:37:50

标签: soap cxf

我必须在服务器端向我的soap请求添加标头(因为我不了解我的客户)。

为此,我通过扩展org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor

使用了拦截器

像这样:

public class HttpHeaderInterceptor extends AbstractSoapInterceptor {

public HttpHeaderInterceptor() {
    super(Phase.PREPARE_SEND);
    System.out.println("Intercept http SOAP ws");
}


@Override
public void handleMessage(SoapMessage soapMessage) throws Fault {

    Map<String, List> headers = (Map<String, List>) soapMessage.get(Message.PROTOCOL_HEADERS);
    System.out.println("-----> headers before"+ headers.toString());
    try {

        headers.put("uri_bu", Arrays.asList("krmx69/fr/proxyServlet/"));
        soapMessage.put(Message.PROTOCOL_HEADERS, headers);
        System.out.println("------> headers after"+ headers.toString());

    } catch (Exception ce) {
        throw new Fault(ce);
    }
}

}

我的问题是:哪个cxf阶段让我在执行之前拦截了soap请求,因为我尝试了很多,但结果相同:

    ============================> call request
====================================> Intercept the request

谢谢:)

0 个答案:

没有答案