プロジェクトでは、ApacheAxis21.6.2を使用してSOAPサービスを実装しています。MTOMを使用してファイルを受信する必要があるサービスがあります。しかし悲しいことに、MTOM添付ファイルの受信で問題が発生し続けています。私は例外を受け取り続けます:
org.apache.axiom.om.OMException: A data handler was not found for content id cid:491414508823
...。
Webで回答を検索しようとしましたが、成功しませんでした。誰かが私を正しい方向に導いてくれることを願っています。私の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を使用してリクエストを生成し、プロパティ'useMTOM'をtrueに設定しました。
同じ問題に遭遇した、またはこれを解決する方法を知っている人はいますか?助けていただければ幸いです!
リチャード
アップデート
私はその問題に取り組んだと思います。問題は私の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は、getPDF_AttatchmentContentのリターンタイプとしてDataHandlerを作成するようになりました。私が取り組まなければならない唯一の問題は、SOAPUIがMTOM添付ファイルを送信できるようにすることです。どういうわけか、私が作成したテストクライアントは完全に機能しますが、SOAPUIは添付ファイルを送信しません...
上記のソリューションのソース: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は、MTOMに関するSOAPUIの問題を解決しました。せっけんメッセージの正しいCIDを編集しませんでした。私はSOAPUIがそれを手伝ってくれると思いましたが、そうではありませんでした。