Interstage Application Server SOAPサービス ユーザーズガイド |
目次
索引
![]() ![]() |
第4章 Messaging方式のアプリケーションの実装 | > 4.2 受信アプリケーションの作成 |
添付ファイルは、SOAPメッセージに付加できる添付データです。Oneway方式、RequestResponse方式のいずれの受信アプリケーションも、添付ファイルを使用することができます。
以下、サンプルプログラムSampleMsgSV3useAttachment.javaの例を用いて処理を説明します。
import javax.xml.soap.*; |
添付ファイルの処理を行わない受信アプリケーションと同様に、OnewayListenerインタフェース(Oneway方式の場合)またはReqRespListenerインタフェース(RequestResponse方式の場合)を実装します。−(1)
Oneway方式では、受信したSOAPメッセージの添付ファイルを処理できます。RequestResponse方式では、受信したSOAPメッセージの添付ファイルを処理できるほか、添付ファイルを付加したSOAPメッセージを返信することができます。
受信したSOAPメッセージを表すSOAPMessageオブジェクトから添付ファイルを取り出します。−(2)
getAttachmentsメソッドにより取り出した添付ファイルはjava.util.Iteratorオブジェクトにまとめて表されます。添付ファイルがない場合はnullが返されます。
Iteratorとして返される添付ファイルの要素はjavax.xml.soap.AttachmentPartオブジェクトとして保持されています。アプリケーションではAttachmentPart.getContentメソッドで実際の添付ファイルを取得します。
受信した添付ファイルのMIMEタイプがtext/plainである場合、AttachmentPart.getContentメソッドで取得した添付ファイルオブジェクトはjava.lang.Stringオブジェクトとして表されます。−(3)
サンプルでは添付ファイルをテキストファイルへ出力しています。
受信した添付ファイルのMIMEタイプがtext/xmlまたはapplication/xmlである場合、AttachmentPart.getContentメソッドで取得した添付ファイルオブジェクトはjavax.xml.transform.Source(このサンプルではjavax.xml.transform.stream.StreamSource)インスタンスとして表されます。−(4)
サンプルでは添付ファイルをXMLファイルへ出力しています。
受信した添付ファイルは、MIMEタイプに関わらずAttachmentPart.getDataHandlerメソッドによって、javax.activation.DataHandlerオブジェクトとして取得することができます。javax.activation.DataHandlerは、Java Activation Framework(JAF)のAPIクラスです。APIを使用してストリームデータなどを取得することができます。APIについては付属のJavaDOCを参照してください。−(5)
サンプルでは添付ファイルをストリームとしてファイルへ出力しています。
受信した添付ファイルのMIMEタイプが"image/gif"または"image/jpeg"である場合は、AttachmentPart.getContentメソッドで取得すると、添付ファイルオブジェクトはjava.awt.Imageインスタンスとして表されます。
送信元に返信するSOAPメッセージをSOAPMessageオブジェクトとして作成します。−(6)
送信元に返信するSOAPメッセージを表すMessageオブジェクトにSAAJ-APIを使用して添付ファイルを設定します。1つのSOAPメッセージには任意の数の添付ファイルを設定することができます。それぞれの添付ファイルはjavax.xml.soap.AttachmentPartオブジェクトとして表され、SOAPMessage.createAttachmentPartメソッドで生成することができます。
生成されたAttachmentPartオブジェクトはSOAPMessage.addAttachmentPartメソッドによりSOAPMessageオブジェクトに設定されます。サンプルでは送信元から送られてきた添付ファイルを返信SOAPMessageオブジェクトに設定しています。−(7)
目次
索引
![]() ![]() |