스키마 기반 페이로드를 사용하는 jax-ws 웹 서비스가 있습니다. MTOM 첨부 파일 유형을 추가 :MTOM을 사용하여 웹 서비스에서 jaxb를 마샬링 해제하는 중 오류가 발생했습니다.
<xs:element name="Attachment" type="xs:base64Binary"
xmime:expectedContentTypes="application/octet-stream"
minOccurs="0" maxOccurs="1" >
</xs:element>
WS-수입 생성 된 자바 파일이 올바른 같습니다
@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>
어떤 제안?
모든 (당신은. 나는 그것에 깊이보기에 걸릴 수 있습니다 사용하는 코드를 모두 삽입하는 경우) 및 HTTP 부분은 올바른 것 같다. 아마 그것은 MOXY 버그 일 것입니다. 나는 표준 JAXB Context로 시도해 볼 것을 제안한다. –
우리는 xoxy로 jaxb 객체로부터 값을 추출하기 위해 moxy가 제공하는 getValueByXPath() 함수의 moxy 기능을 사용하고 있습니다. 나는 표준 JAXB가 그 기능을 제공한다고 생각하지 않는다. – OldProgrammer