對於一個項目,我正在使用Apache Axis2 1.6.2實現SOAP服務。我有一個需要使用MTOM接收文件的服務。但遺憾的是,我一直在收到一個MTOM附加文件的問題。我不斷收到異常:Axis2收到MTOM附件沒有datahandler發現錯誤
org.apache.axiom.om.OMException: A data handler was not found for content id cid:491414508823
....
我試着在網上搜索答案,但沒有成功的。我希望有人能讓我走向正確的方向。我的WSDL包含下面的代碼片段:
...
<xs:element minOccurs="0" name="PDF_Attachment">
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" name="PDF_AttachmentName" type="xs:string"/>
<xs:element name="PDF_AttachmentContent" type="xs:base64Binary"/>
</xs:all>
</xs:complexType>
</xs:element>
...
我使用了SoapUI生成請求,並設置屬性「使用MTOM」爲真。
有沒有人遇到同樣的問題或知道如何解決這個問題。幫助將不勝感激!
理查德
UPDATE
我想我已經解決了這個問題。這個問題在我的xsd/wsdl定義中。我使用jaxb將外部xsd中定義的業務對象轉換爲帶有JAXB註釋的POJO。但是xs:base64Binary被轉換爲byte []。與更改XSD:
<xs:schema ... xmlns:xmime="http://www.w3.org/2005/05/xmlmime"> ...
和不斷變化的元素:
<xs:element name="PDF_AttachmentContent" minOccurs="1" maxOccurs="1" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream">
JAXB現在創建的DataHandler作爲getPDF_AttatchmentContent返回類型。我必須解決的唯一問題是允許SOAPUI發送MTOM附件。不知怎的,我創作的作品完美,但SOAPUI不發送附件一TestClient的...
來源爲上述解決方案:http://cxf.apache.org/docs/mtom-attachments-with-jaxb.html
更新2: http://ssagara.blogspot.nl/2012/03/test-axis2-jax-ws-mtom-service-using.html解決了我的問題SOAPUI與MTOM。我沒有在我的肥皂信息中編輯正確的cid。我認爲SOAPUI可以幫助我,但事實並非如此。
您可以發送發送到該服務的消息的抄本嗎?另外,你應該發佈更多的棧跟蹤,而不僅僅是第一行。 – 2012-07-16 20:09:02
感謝您的閱讀和評論。我剛剛解決了這個問題。 – Bjarne77 2012-07-17 08:29:39