Interstage Application Server SOAPサービス ユーザーズガイド |
目次 索引 |
第8章 サポートされるデータ型 | > 8.1 XMLとJavaのデータ型マッピング |
以下に示すデータ型を、RPCアプリケーションのパラメタとして使用することで、添付ファイル(アタッチメント)ということを意識することなく、添付ファイルを利用したSOAPメッセージの通信を行うことができます。
XMLのデータ型として登録するデータ型 |
RPCアプリケーションのパラメタ(Javaのデータ型クラス) |
|
---|---|---|
inまたはreturn |
outまたはinout |
|
issoap:Image |
java.awt.Image |
ZZZ.ImageHolder |
issoap:Source |
javax.xml.transform.Source |
ZZZ.SourceHolder |
issoap:Multipart |
javax.mail.internet.MimeMultipart |
ZZZ.MimeMultipartHolder |
issoap:DataHandler |
javax.activation.DataHandler |
ZZZ.DataHandlerHolder |
issoap:PlainText |
java.lang.String |
YYY.StringHolder |
XMLのデータ型として登録するデータ型名として、以下の定数が定義されています。
●パッケージ名:com.fujitsu.interstage.soapx
クラス名 |
フィールド名 |
説明 |
---|---|---|
Constants |
MIME_IMAGE |
添付ファイル型"issoap:Image"のネームスペース付き名前を表すjavax.xml.namespace.QName型の定数です。 |
MIME_SOURCE |
添付ファイル型"issoap:Source"のネームスペース付き名前を表すjavax.xml.namespace.QName型の定数です。 |
|
MIME_MULTIPART |
添付ファイル型"issoap:Multipart"のネームスペース付き名前を表すjavax.xml.namespace.QName型の定数です。 |
|
MIME_DATA_HANDLER |
添付ファイル型"issoap:DataHandler"のネームスペース付き名前を表すjavax.xml.namespace.QName型の定数です。 |
|
MIME_PLAINTEXT |
添付ファイル型"issoap:PlainText"のネームスペース付き名前を表すjavax.xml.namespace.QName型の定数です。 |
上記の"issoap"が表すネームスペースは"urn:xmlns-fujitsu-com:xml-soap-2002-10"です。
添付ファイル型としてjavax.activation.DataHandler以外のクラスを使用した場合、使用したクラスに応じてデータ変換が行われるため、受信した添付ファイルのデータが送信元の添付ファイルのデータと異なる場合があります。
送信元と同じデータを受信する必要がある(データ変換を回避したい)場合は、javax.activation.DataHandlerクラスを使用してください。
例えば、java.lang.Stringクラスを使用した場合、添付ファイルのデータが送信元の文字コードに関わらず、Javaの文字コードに変換されます。
通常のデータ型と同様に、「inまたはreturn」のクラス(上記の表を参照)のオブジェクトをパラメタとして使用します。
DII方式のクライアントアプリケーションでの使用例です。
Source source = new StreamSource(new FileInputStream("sample.xml")); :(略) call.addParameter( "v", Constants.MIME_SOURCE, ParameterMode.IN ); :(略) Object resp = call.invoke( new Object[] { source } ); |
通常のデータ型と同様に、「outまたはinout」のクラス(上記の表を参照)のオブジェクトをパラメタとして使用します。これらのクラスは保持しているデータを表すフィールドと、コンストラクタのみを持つクラスです。
以下にjavax.xml.transform.Sourceを保持するZZZ.SourceHolderクラスの場合のフィールド、およびコンストラクタについて説明します。他のYYY.データ型名Holderクラス、ZZZ.データ型名Holderクラスも同様に、保持する型のvalueフィールド、デフォルトコンストラクタ、初期値を指定するコンストラクタを持ちます。
クラス名 |
メソッド/フィールド名 |
説明 |
---|---|---|
SourceHolder |
public Source value |
インスタンスフィールド。 |
public SourceHolder (Source initial) |
コンストラクタ。 |
RPCサーバアプリケーションでinoutパラメタとして使用する例
//RPCサーバアプリケーションのメソッド // shはinoutパラメタとしてWebサービス・マネージャに登録する public void serverMethod(SourceHolder sh) { Source inSource = sh.value; :(outSourceとして返却するSourceを作成する処理(略)) sh.value = outSource; } |
上記の例では、inoutパラメタとして受け取った、ZZZ.SourceHolderクラスのインスタンスの内容を入れ替えて、RPCクライアントアプリケーションに送信します。
目次 索引 |