私は、スキーマベースのペイロードを使用するjax-ws Webサービスを持っています。 MTOM添付ファイルの種類を追加:MTOMを使用したWebサービスからのjaxbのアンマーシャリングエラー
<xs:element name="Attachment" type="xs:base64Binary"
xmime:expectedContentTypes="application/octet-stream"
minOccurs="0" maxOccurs="1" >
</xs:element>
WS-輸入生成されたjavaファイルが正しいになります
@XmlRootElement(name = "Contact")
public class Contact {
@XmlElement(name = "Attachment")
@XmlMimeType("application/octet-stream")
protected DataHandler attachment;
リクエストを送信するためにあるsoapUIを使用しました。
HTTPヘッダ:次に
Accept-Encoding: gzip,deflate
Content-Type: multipart/related; type=application/xop+xml; start=<[email protected]>; start-info=text/xml; boundary=----=_Part_96_20541990.1485816424570
SOAPAction: http://hsn.us.banner.hsntech.com/Level1Request
MIME-Version: 1.0
Content-Length: 47624
[1]: https://i.stack.imgur.com/BEbZS.jpg
エンコードされたファイルのセクションでHTTPの部分を参照してください。
------=_Part_96_20541990.1485816424570"
Content-Transfer-Encoding: binary"
Content-ID: <test1.jpg>"
Content-Disposition: attachment; name="test1.jpg"; filename="test1.jpg""
[0xff][0xd8][0xff][0xe0][0x0][0x10]JFIF[0x0][0x1][0x1][0x1][0x0]`[0x0]`[0x0][0x0][0xff][0xdb][0x0]C[0x0][\n]"... etc...
しかし、このエラーを取得しておいてください。
[Exception [EclipseLink-25004] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: An error occurred unmarshalling the document
Internal Exception: java.lang.IllegalArgumentException: MjAxNi0wMS0wNVQwOTowMDowMA==]</faultstring></ns0:Fault></S:Body></S:Envelope>
任意の提案ですか?
WSDLのすべて、注釈は、HTTPヘッダーとHTTP部分が正しいようです。 MOXYバグかもしれません。標準JAXBコンテキストで試してみることをお勧めします。 –
私たちはxoxyでjaxbオブジェクトから値を抽出するためにmoxyが提供するgetValueByXPath()関数のmoxy機能を使用しています。私は標準のJAXBがその能力を提供しているとは思わない。 – OldProgrammer