Java 如何向cxf soap请求添加自定义头?
我想使用Java 如何向cxf soap请求添加自定义头?,java,spring,web-services,soap,cxf,Java,Spring,Web Services,Soap,Cxf,我想使用cxf和springsoap-webservices创建以下xml: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:key="http://schema.to/WebService"> <soapenv:Header> <key:Signing>asdasdasd</key:Signing> <
cxf
和spring
soap-webservices创建以下xml:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:key="http://schema.to/WebService">
<soapenv:Header>
<key:Signing>asdasdasd</key:Signing>
</soapenv:Header>
阿斯达斯达斯德
如何做到这一点?如何设置名称空间和自定义标头标记元素?在maven cxf配置中使用以下内容:
<wsdlOption>
<wsdl>...</wsdl>
<extraargs>
<extraarg>-exsh</extraarg> <!-- this -->
<extraarg>true</extraarg> <!-- this -->
</extraargs>
</wsdlOption>
...
-埃克斯
符合事实的
这将生成方法属性
@webgram(header=true)
,然后可以在webservice access上提供这些属性。在maven cxf配置中使用以下内容:
<wsdlOption>
<wsdl>...</wsdl>
<extraargs>
<extraarg>-exsh</extraarg> <!-- this -->
<extraarg>true</extraarg> <!-- this -->
</extraargs>
</wsdlOption>
...
-埃克斯
符合事实的
这将生成方法属性
@webgram(header=true)
,然后可以在webservice access上提供这些属性。使用实现javax.xml.ws.handler.soap.SOAPHandler的CustomHeaderHandler
在公共布尔handleMessage(SOAPMessageContext soapMsgCtx)
中使用如下代码
if (msg.getSOAPPart().getEnvelope().getHeader() == null) {
msg.getSOAPPart().getEnvelope().addHeader();
}
msg.getSOAPHeader().addChildElement("Signing", "key").addTextNode("asdasdasd");
使用实现
javax.xml.ws.handler.soap.SOAPHandler
在公共布尔handleMessage(SOAPMessageContext soapMsgCtx)
中使用如下代码
if (msg.getSOAPPart().getEnvelope().getHeader() == null) {
msg.getSOAPPart().getEnvelope().addHeader();
}
msg.getSOAPHeader().addChildElement("Signing", "key").addTextNode("asdasdasd");