Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド |
目次 索引 |
第4部 Webサービス編 | > 第18章 Webサービスの開発 | > 18.3 Javaのデータ型とXMLのデータ型との対応 |
添付ファイル型は、実際の通信においてXMLへ変換されず、SOAPメッセージの添付ファイルとしてそのままのデータで送受信されるデータ型です。
通常のデータ型と同様に、Webサービスアプリケーションのパラメタ(引数、返り値)、Bean型・構造体型のメンバなどに利用できます。
添付ファイル型に使用するクラスと、それに対応してXMLで使用される型を以下に示します。
Webサービスアプリケーションのパラメタに使用するJavaのデータ型
XMLで使用されるデータ型
javax.activation.DataHandler
wsibp:swaRef
(またはMIMEバインディングのpart要素に任意のMIME型としてマップ)
javax.activation.DataHandlerは、JAF(Java Activation Framework)で提供されるクラスです。MIMEの各種情報およびデータ内容を保持します。本クラスの詳細については、JavaDocを参照してください。
下記のJavaクラスも添付ファイルを表すデータ型として利用することができます。ただし、これらのJavaクラスを使用する場合、バイト列とJavaオブジェクトへの変換が行われるなど、オリジナルのバイト列データが正確に保持されない場合があります。また、これらのクラスを使用したサービスエンドポイントインタフェースからは作成するWSDLはWS-I Attachments Profileに準拠できない場合があります。
Webサービスアプリケーションのパラメタに使用するJavaのデータ型
XMLで使用されるデータ型
java.awt.Image
apachesoap:Image
(またはMIMEバインディングのpart要素MIME型image/jpegとしてマップ)javax.mail.internet.MimeMultipart
apachesoap:MimeMultipart
(またはMIMEバインディングのpart要素にMIME型multipart/*としてマップ)javax.xml.transform.Source (注)
apachesoap:Source
(またはMIMEバインディングのpart要素にMIME型text/xmlとしてマップ)
注) javax.xml.transform.Sourceインタフェースの実装クラスには、javax.xml.transform.source.StreamSourceクラスを使用してください。それ以外のクラスのオブジェクトはサポートされません。
WSDL中のmime:content要素で添付ファイルが指定されている場合、次の表に示すようにJavaクラスにマップされます。
mime:content要素のtype属性
Javaクラス
image/jpeg
java.awt.Image
text/plain
java.lang.String
multipart/*
javax.mail.internet.MimeMultipart
text/xml
javax.xml.transform.Source
application/xml
javax.xml.transform.Source
上記以外のMIME型 (注)
javax.activation.DataHandler
注) image/gif型は未サポートです。
mime:content要素が使用された場合、mime:content要素のpart属性から参照されたwsdl:part要素のtype及びelement属性は、生成されるサービスエンドポイントインタフェースにマップされません。替わりに上記のJavaクラスが使用されます。
なお、MIMEバインディングのpart要素が上記に記載されたMIME型以外の場合は、Webサービスアプリケーションのパラメタとしてjavax.activation.DataHandlerが使用されます。ただし、MIME型image/gifは利用できません。
一定以上のサイズの添付ファイルを受信する際、メモリ節約のため、内部的に一時ファイルが作成されます。また、添付ファイルに関するAPIを使用した場合も、一時ファイルが作成される場合があります。
一時ファイルの生成に関するチューニングは、Webサービス設定ファイルで行います。
詳細については、“Webサービスの運用”の“Webサービス設定ファイル”を参照してください。
目次 索引 |