Cosminexus アプリケーションサーバ V8 Webサービス開発の手引
添付ファイルからSOAPメッセージをマッピングするときの注意事項について説明します。
MIMEパートは1個のルートパートと0個以上の添付ファイルパートで構成されます。
ルートパートは,MIMEパートの先頭に記述されます。ルートパートのあとに,添付ファイルパートが記述されます。
添付ファイルパートでは,Javaインタフェースで指定された引数や戻り値がマッピングされます。Javaインタフェースの指定内容と添付ファイルパートでの記述順序の対応を次の表に示します。
表18-8 Javaインタフェースの指定内容と添付ファイルパートの記述順序
| 項番 | Javaインタフェースでの指定個所 | 添付ファイルパートの記述順序 |
|---|---|---|
| 1 | メソッド引数 | メソッド引数に指定された順に記述されます。 |
| 2 | メソッド戻り値 | 添付ファイルパートの先頭に記述されます。 |
| 3 | 配列型 | 配列内の要素順に記述されます。 |
| 4 | ユーザ定義型 | ユーザ定義型内での指定順に記述されます。 ユーザ定義型の中で指定したユーザ定義型で,添付ファイルのJava型を指定するときは,深さ優先順で添付ファイルパートが記述されます。 |
Javaインタフェースと添付ファイルパートのマッピング例を示します。
図18-5 Javaインタフェースと添付ファイルパートのマッピング例
ルートパートのSOAPボディに記述されるCID URLスキームには,対応する添付ファイルパートのContent-Idが記述されます。Content-Idによって,ルートパートから対応する添付ファイルパートが参照されます。
添付ファイル付きSOAPメッセージの一部を示します。太字部分がCID URLスキームと,対応する添付ファイルパートのContent-Idになります。
--uuid:73a28380-5de5-45e8-af15-c879e65d62a0
Content-Type: text/xml
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<getUserData xmlns="http://localhost">
<in0>cid:d10ed73c-e9b7-418e-8201-ba920cccb214@jaxws.cosminexus.com</in0>
</getUserData>
</S:Body>
</S:Envelope>
--uuid:73a28380-5de5-45e8-af15-c879e65d62a0
Content-Id:<d10ed73c-e9b7-418e-8201-ba920cccb214@jaxws.cosminexus.com>
Content-Type: text/plain
Content-Transfer-Encoding: binary
[添付データ]
--uuid:73a28380-5de5-45e8-af15-c879e65d62a0--
|
添付ファイルの拡張子と,デフォルトで設定されるMIMEタイプのマッピングを次の表に示します。
表18-9 添付ファイルの拡張子とMIMEタイプの対応表
| 項番 | 添付ファイルの拡張子 | 設定されるMIMEタイプ |
|---|---|---|
| 1 | html,htm | text/html |
| 2 | txt,text | text/plain |
| 3 | gif,GIF | image/gif |
| 4 | ief | image/ief |
| 5 | jpeg,jpg,jpe,JPG | image/jpeg |
| 6 | tiff,tif | image/tiff |
| 7 | xwd | image/x-xwindowdump |
| 8 | ai,eps,ps | application/postscript |
| 9 | rtf | application/rtf |
| 10 | tex | application/x-tex |
| 11 | texinfo,texi | application/x-texinfo |
| 12 | t,tr,roff | application/x-troff |
| 13 | au | audio/basic |
| 14 | midi,mid | audio/midi |
| 15 | aifc | audio/x-aifc |
| 16 | aif,aiff | audio/x-aiff |
| 17 | wav | audio/x-wav |
| 18 | mpeg,mpg,mpe | video/mpeg |
| 19 | qt,mov | video/quicktime |
| 20 | avi | video/x-msvideo |
この表にない拡張子を指定した場合,MIMEタイプは「application/octet-stream」が設定されます。
Javaインタフェースに指定する添付ファイルのデータサイズがnullの場合と,0バイト以上のデータがある場合では,添付ファイルパートへのマッピング方法が異なります。それぞれの場合のマッピングについて説明します。
添付ファイルのデータサイズがnullの場合,添付ファイルパートにマッピングされません。MIMEパートを生成しないで,SOAPエンベロープだけが記述されます。また,SOAPボディの該当する引数の要素には,空の要素が指定されます。
添付ファイルのデータサイズがnullの場合のマッピング例を示します。
... UserInfoService service = new UserInfoService(); UserInfo impl = service.getUserInfo(); result = impl.getUserData( null ); ... |
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<getUserData xmlns="http://localhost">
</getUserData>
</S:Body>
</S:Envelope>
|
添付ファイルのデータサイズが0バイト以上の場合,添付ファイルパートにマッピングされます。この場合,ルートパートと添付ファイルパートから構成されるマルチパートとなります。Javaインタフェースで複数の添付ファイルを指定している場合は,添付ファイルパートは複数記述されます。ただし,0バイトの場合は,添付ファイルパート内のMIMEボディは空となります。
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.