spring - 向所有传出 CXF 请求添加 header

标签 spring client cxf

是否可以从客户端向所有传出 cxf 连接添加 Header。

使用 Spring 3.0 和 CXF 2.6.0

最佳答案

我想在这里给我两分钱。我在我的帖子中解决了同样的案例 -

http://saurzcode.in/2014/05/08/adding-header-to-soap-request-using-cxf-2/

Spring 配置:-

<jaxws:client id="mywebServiceClient"
    serviceClass="com.saurzcode.TestService"
    address="http://saurzcode.com:8088/mockTestService">

    <jaxws:binding>
        <soap:soapBinding version="1.2" mtomEnabled="true" />
    </jaxws:binding>
</jaxws:client>
<cxf:bus>
    <cxf:outInterceptors>
        <bean class="com.saurzcode.ws.caller.SoapHeaderInterceptor" />
    </cxf:outInterceptors>
</cxf:bus>

CXF 拦截器 -
public class SoapHeaderInterceptor extends AbstractSoapInterceptor {

    public SoapHeaderInterceptor() {
        super(Phase.POST_LOGICAL);
    }

    @Override
    public void handleMessage(SoapMessage message) throws Fault {
        List<Header> headers = message.getHeaders();
        TestHeader testHeader = new TestHeader();
        JAXBElement<TestHeader> testHeaders = new ObjectFactory()
        .createTestHeader(testHeader);

        try {
            Header header = new Header(testHeaders.getName(), testHeader,
            new JAXBDataBinding(TestHeader.class));
            headers.add(header);
            message.put(Header.HEADER_LIST, headers);

        } catch (JAXBException e) {
            e.printStackTrace();
        }

    }

关于spring - 向所有传出 CXF 请求添加 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527863/

相关文章:

spring - 如何获取java配置类中定义的bean列表?

java - Spring boot API - 如何随着用户的增长扩展应用程序

c - 我必须向服务器发送哪些参数?

swift - 从 Android 服务器获取照片到 iOS

java - 如何在 CXF 的 READ 阶段从 SoapMessage 中提取请求的操作名称?

java - 公共(public)代码的父类(super class)与实用程序类

Spring - 从属性文件中检索值

authentication - 使用 clientAuth=want 的 tomcat 客户端身份验证

CXF Web 服务客户端错误

java - 防止 JAXRSClientFactory 重用连接