在调用服务

时间:2017-02-02 09:17:23

标签: java web-services soap wsdl soap-client

我使用java调用soap服务,我对文本节点没有任何问题,但是一个参数需要字节数组格式的文件内容。 (不是base64编码的文件的字符串形式)

如何将二进制内容(字节数组)设置为soap消息?

QName q1 = new Qname(qnameNS, "expectstextvalue", prefix);
SOAPElement e1 = bodyElement.addChildElement(q1);
e1.addTextNode("simple text value");

QName q2 = new Qname(qnameNS, "expectsbytevalue", prefix);
SOAPElement e2 = bodyElement.addChildElement(q2);

//how can i set byte values to a soap message?
//e1.setByte() 

这些参数的wsdl如下:

<xs:element name="expectstextvalue" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="expectsbytevalue" type="xs:base64Binary" nillable="true" minOccurs="0"/>

1 个答案:

答案 0 :(得分:0)

如果您创建XML,则可以使用Base64

设置您的值

示例:

import javax.xml.bind.DatatypeConverter;

final byte[] somethings = DatatypeConverter.parseBase64Binary("Something object in example is string");