我正在尝试为获取 int[] 作为输入和输出的 Web 服务创建客户端。我找到了一个 Soap Request 示例,它显示了 SoapRequest 如何使用 Xml 传输数组。
<element name="myFavoriteNumbers"
type="SOAP-ENC:Array"/>
<myFavoriteNumbers
SOAP-ENC:arrayType="xsd:int[2]">
<number>3</number>
<number>4</number>
</myFavoriteNumbers>
我的代码到现在
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage sm = mf.createMessage();
SOAPHeader sh = sm.getSOAPHeader();
sh.setPrefix("S");
SOAPEnvelope envelope = sm.getSOAPPart().getEnvelope();
envelope.removeNamespaceDeclaration(envelope.getPrefix());
envelope.setPrefix("S");
envelope.addNamespaceDeclaration("S",
"http://schemas.xmlsoap.org/soap/envelope/");
SOAPBody sb = sm.getSOAPBody();
sb.setPrefix("S");
SOAPElement container=sb.addChildElement("sum", "ns2", webServicePkg);
SOAPElement a = container.addChildElement("number1");
a.addTextNode(Integer.toString(arg1));
SOAPElement b = container.addChildElement("number2");
b.addTextNode(Integer.toString(arg2));
我所需要的只是转换我当前的 SoapMessage,以便它可以重现给定的 Xml 示例,以便它可以将这 2 个数字作为一个数组发送,而不是每个数字分开发送。
非常感谢