私はSoap WSをJava上に持っています。ここで
は、SOAPリクエストSOAPリクエスト。文字列をバイト配列に変換する
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:his="SCC/Lis/HistoryFormatter">
<soapenv:Header/>
<soapenv:Body>
<his:formatHistoryByteArray>
<arg0>cid:anystring</arg0>
</his:formatHistoryByteArray>
</soapenv:Body>
</soapenv:Envelope>
あるFormatHistoryByteArray.classは*に一つだけのフィールド
@XmlElement(name = "arg0", namespace = "", nillable = true)
private byte[] arg0;
タイプを持っているWSDLとXSDがJAXWSによって生成される
<xs:complexType name="formatHistoryByteArray">
<xs:sequence>
<xs:element name="arg0" type="xs:base64Binary" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
を.XSD。
ノードの変換文字列の論理をjava-codeのバイト[]に要求することができません。ヘルプplz
cid:は、必要な接頭辞かどうかですか?
編集:例えば IはJavaコードで要求
<arg0>abcdef</arg0>
を持っている場合、私は、WebServiceが、このバイト配列を取得する方法のバイト[] = {105、-73、29}
を得ます文字列からabcdef?
あなたの質問はまだ明確ではありません。文字列をbyte []に変換する場合は、stringValue.getBytes()を使用してください。 – Bitmap
WebServiceは文字列をbyte []に自動的に変換しますが、この結果はstringValue.getBytes()の結果とは異なります。 – Ilya
いいえ、そうではありません。 'formatHistoryByteArray'のために定義されたcomplexTypeはbase64でエンコードされた値です。' org.apache.commons.codec.binary.Base64'かそれに類するものを使用して、値をバイト[]またはオブジェクトにデコードします。 – Bitmap