添付ファイルをもつSOAPメッセージが使用できる環境は以下のとおりです。
J2EE実行環境 | Java EE実行環境 | ||
---|---|---|---|
SOAP1.1 | 添付なし | ○ | ○ |
WS-I Attachments Profile方式の添付 | ○ | × | |
MTOM方式の添付 | × | ○ | |
SOAP1.2 | 添付なし | × | ○ |
WS-I Attachments Profile方式の添付 | × | × | |
MTOM方式の添付 | × | ○ |
○:サポート
×:未サポート
添付ファイルをもつSOAPメッセージでは、メッセージの送受信とメッセージ内容の操作ができます。添付の種類と操作できるメディエーション機能は、以下のとおりです。
WS-I Attachments Profile方式の添付 | MTOM方式の添付 | |
---|---|---|
SOAPインバウンド | ○ | ○ |
SOAPアウトバウンド | ○ | ○ |
添付操作 (getAttachment/setAttachment) | × | ○ |
添付入出力 (readFile/writeFile) | × | ○ |
添付変換 | × | ○ |
○:指定可能
×:指定不可
WS-I Attachments Profile方式の添付
シーケンス実行時のデータをWS-I Attachments Profile方式の添付ファイルをもつSOAPメッセージとするには、以下の方法があります。
WS-I Attachments Profile方式の添付をもつSOAPメッセージを、SOAPアダプタのインバウンドで受信
WS-I Attachments Profile方式の添付をもつSOAPメッセージを、SOAPアダプタのアウトバウンドで受信
シーケンス実行時に、WS-I Attachments Profile方式の添付ファイルを操作するには、以下の方法があります。
ユーザメディエータファンクションを作成し、アプリケーションで操作することができます。詳細は、“ISI アプリケーション開発ガイド”の“添付ファイルを操作する”を参照してください。
MTOM方式の添付
シーケンス実行時のデータをMTOM方式の添付ファイルをもつSOAPメッセージとするには、以下の方法があります。
MTOM方式の添付をもつSOAPメッセージを、SOAPアダプタのインバウンドで受信
MTOM方式の添付をもつSOAPメッセージを、SOAPアダプタのアウトバウンドで受信
インバウンドで添付ファイルとするデータを受信後、ファイルの入出力メディエータファンクションでSOAPメッセージをペイロードに読み込み、添付操作メディエータファンクションで両者よりMTOM方式の添付をもつSOAPメッセージを作成
図2.48 MTOM方式の添付を持つSOAPメッセージの作成
※1
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://service.fujitsu.com" xmlns:xsd="http://wso.fujitsu.com/xsd">
<soap:Header/>
<soap:Body>
<ser:uploadFile>
<ser:param>
<xsd:dataType></xsd:dataType>
<xsd:file>ATTACHMENT</xsd:file>
<xsd:hash></xsd:hash>
</ser:param>
</ser:uploadFile>
</soap:Body>
</soap:Envelope>
添付ファイルとするデータにひも付けする項目に、“ATTACHMENT”という値を設定します。添付ファイルとして設定できるデータは1件だけです。
※2
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://service.fujitsu.com" xmlns:xsd="http://wso.fujitsu.com/xsd">
<soap:Header/>
<soap:Body>
<ser:uploadFile>
<ser:param>
<xsd:dataType></xsd:dataType>
<xsd:file><xop:Include xmlns="http://www.w3.org/2004/08/xop/include" href="cid: 8072d71e-24f2-4c5f-bb6d-e8e9a133c5d6@jaxws.sun.com" /></xsd:file>
<xsd:hash></xsd:hash>
</ser:param>
</ser:uploadFile>
</soap:Body>
</soap:Envelope>
シーケンス実行時に、MTOM方式の添付をもつSOAPメッセージの添付を操作するには、以下の方法があります。
ユーザメディエータファンクションを作成し、アプリケーションで操作することができます。詳細は、“ISI アプリケーション開発ガイド”の“添付ファイルを操作する”を参照してください。
添付入出力メディエータファンクション(writeFile)、添付変換メディエータファンクション、および添付入出力メディエータファンクション(readFile)を使用して、Formatmanagerを使用したフォーマット変換および文字コード変換をすることができます。
添付入出力メディエータファンクション(writeFile)は、共通メッセージの添付をFormatmanager用に出力します。
添付変換メディエータファンクションは、添付入出力メディエータファンクション(writeFile)で出力した添付をFormatmanagerで変換します。
添付入出力メディエータファンクション(readFile)は、添付変換メディエータファンクションで変換した添付を共通メッセージに反映します。
図2.49 MTOM方式の添付をもつSOAPメッセージの添付の操作
SOAP添付データの操作メディエータファンクションにより、MTOM方式の添付をペイロードに移動することで、各種メディエーション機能で操作できます。
図2.50 MTOM方式の添付をもつSOAPメッセージの添付の移動
※3
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://service.fujitsu.com" xmlns:xsd="http://wso.fujitsu.com/xsd">
<soap:Header/>
<soap:Body>
<ser:uploadFile>
<ser:param>
<xsd:dataType></xsd:dataType>
<xsd:file><xop:Include xmlns="http://www.w3.org/2004/08/xop/include" href="cid: 117ed850-4359-4a4d-ba82-10329039d3fa@jaxws.sun.com" /></xsd:file>
<xsd:hash></xsd:hash>
</ser:param>
</ser:uploadFile>
</soap:Body>
</soap:Envelope>