2017-02-02 14 views
3

Я звоню в службу мыла с помощью java, у меня нет проблем с текстовыми узлами, но один параметр ожидает содержимого файла в формате массива байтов. (Не является строковой формой файла в кодировке 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"/> 
+0

мы можем связать прикрепление мыльного сообщения к элементу мыла, поэтому получатель связывает присоединение с соответствующим узел? https://docs.oracle.com/cd/E19575-01/819-3669/bnbhf/index.html – benchpresser

ответ

0

Если вы создаете XML, вы можете установить свои значения с помощью Base64

Пример:

import javax.xml.bind.DatatypeConverter; 

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