我有一个wsdl,这个wsdl在SOAPUI中有这样的请求消息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:service="www.xxxxx.xx">
<soapenv:Header>
<service:SessionInfo>
<service:UserPassword>?</service:UserPassword>
</service:SessionInfo></soapenv:Header>
<soapenv:Body>
<service:Method1>
<!--Optional:-->
<service:Arguments>
<service:Parameter1>?</service:Parameter1>
<service:Parameter2>?</service:Parameter2>
<!--Optional:-->
<service:Parameter3>?</service:Parameter3>
<!--Optional:-->
<service:Parameter4>?</service:Parameter4>
</service:Arguments>
</service:Method1></soapenv:Body></soapenv:Envelope>
我在Java中发送此wsdl的头消息时遇到问题。我成功地在C#和SOAPUI中发送了请求消息。在Java中导入wsdl之后,我无法访问此请求的标头部分,尽管我能够在SOAPUI和C#中访问。我只能在Java中访问此wsdl的正文部分但我无法访问soapenv:Java中的Header部分。使用org.apache.axis.client.Stub和java.rmi.Remote是否有解决此问题的方法? 如何添加标题?感谢。
答案 0 :(得分:0)
您可以添加custom headers
,如下所示:
MessageContext responseMessageContext =
MessageContext.getCurrentMessageContext().getOperationContext().getMessageContext(
WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
List headers = new ArrayList();
headers.add(new Header(HTTPConstants.HEADER_CONTENT_ENCODING, "identity"));
responseMessageContext.setProperty(HTTPConstants.HTTP_HEADERS, headers);
或者从链接here
检查这种方式答案 1 :(得分:0)
使用 foobranch
库,只需将服务端口强制转换为 org.apache.axis.axis
添加特定标题:
org.apache.axis.client.Stub