如何在 Java 中发送标头消息
本文关键字:消息 Java | 更新日期: 2023-09-27 18:36:31
我在 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 发送了请求消息。我能够在C#中查看部分类,这是SOAPUI中的soapenv:Header。在 Java 中导入 wsdl 后,我无法查看分部类。我必须在Java中做一些不同的事情吗?
谢谢。
通常,
您将使用库来调用 SOAP 端点,例如 axis2。
这篇博文展示了如何使用此库设置标头。
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);