是否可以从客户端向所有传出 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/