Cosminexus アプリケーションサーバ V8 Webサービス開発の手引
javax.xml.bind.annotation.XmlMimeTypeアノテーションは,Java型とMIMEタイプの関連づけに使用されるJAXBのアノテーションで,javax.xml.ws.soap.MTOMアノテーションを使用する場合で,Java型とMIMEタイプを関連づけるときに使用します。
javax.xml.bind.annotation.XmlMimeTypeアノテーションは,SEIや暗黙のSEIがあるWebサービス実装クラスが持つサービスメソッドの引数,戻り値,またはユーザ定義型のgetterメソッドに指定できます。それ以外の個所(暗黙のSEIがないWebサービス実装クラスが持つサービスメソッドの引数,戻り値,ユーザ定義例外のフィールドなど)に指定した場合は動作が保証されません。
javax.xml.bind.annotation.XmlMimeTypeアノテーションをSEIなどにアノテートしている場合,Webサービス側のJAX-WSエンジンが発行するWSDLファイルやcjwsgenツールが生成するWSDLファイルは,javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートしたJava型に対応するスキーマの要素に,アノテーションのvalue要素に指定した値を持つxmime:expectedContentTypes属性が付与されます。
javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用した例を次の図に示します。
図13-17 javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用した例
Java型とMIMEタイプを関連づけない場合,javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートする必要はありません。そのとき,MTOM/XOP仕様形式の添付ファイルで送信されるメッセージの添付ファイルパートにあるContent-Typeフィールドの値は,Java型に対応する初期値が使用されます。
javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用しない例を次の図に示します。
図13-18 javax.xml.bind.annotation.XmlMimeTypeアノテーションを使用しない例
javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートし,MIMEタイプを関連づけることができるJava型とその指定個所を次の表に示します。なお,それ以外の型にjavax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートした場合の動作は保証されません。
表13-17 MIMEタイプを関連づけることができるJava型とその指定個所
| 項番 | Java型 | 関連づけの可否 | 指定個所 | |||
|---|---|---|---|---|---|---|
| メソッド引数 | メソッド戻り値 | ユーザ定義型のフィールド | ユーザ定義例外のフィールド | |||
| 1 | java.awt.Image | ○※1 | ○ | ○ | △※2 | ×※3 |
| 2 | javax.xml.transform.Source | ○ | ○ | ○ | △※2 | ×※3 |
| 3 | javax.activation.DataHandler | ○ | ○ | ○ | △※2 | ×※3 |
| 4 | java.awt.Imageの配列型 | △※4 | ○ | ○ | △※2 | ×※3 |
| 5 | javax.activation.DataHandlerの配列型 | △※4 | ○ | ○ | △※2 | ×※3 |
| 6 | java.util.List<Image> | ○ | ○ | ○ | △※2 | ×※3 |
| 7 | java.util.List<DataHandler> | ○ | ○ | ○ | △※2 | ×※3 |
| 8 | javax.xml.ws.Holder<Image> | ○ | ○ | ×※5 | ×※5 | ×※5 |
| 9 | javax.xml.ws.Holder<Source> | ○ | ○ | ×※5 | ×※5 | ×※5 |
| 10 | javax.xml.ws.Holder<DataHandler> | ○ | ○ | ×※5 | ×※5 | ×※5 |
package com.sample;
import java.awt.Image;
public class UserData {
private Image image;
public void setImage(Image image) {
this.image = image;
}
@javax.xml.bind.annotation.XmlMimeType("image/png")
public Image getImage() {
return image;
}
}
|
value要素は,javax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートしたJava型に関連づけるMIMEタイプのテキスト表現を指定します。
指定するMIMEタイプは,アノテーションをアノテートしたJava型に対して適切なMIMEタイプでなければなりません。指定するMIMEタイプが適切ではない場合や複数のMIMEタイプをコンマ区切りで記述した場合,動作は保証されません。また,指定するMIMEタイプには,"text/xml"および"application/xml"のcharsetパラメタを除いて,パラメタを記述しないでください。"text/xml"および"application/xml"のcharsetパラメタ以外のパラメタを記述した場合,動作は保証されません。
Java型に指定できるMIMEタイプを次の表に示します。
表13-18 Java型に指定できるMIMEタイプ
| 項番 | Java型 | value要素に指定できるMIMEタイプ |
|---|---|---|
| 1 | java.awt.Image,java.awt.Imageの配列型,java.util.List<Image>,またはjavax.xml.ws.Holder<Image> | image/png※1 |
| 2 | image/jpeg※1 | |
| 3 | image/*※2 | |
| 4 | javax.xml.transform.Sourceまたはjavax.xml.ws.Holder<Source> | text/xml※3 |
| 5 | application/xml | |
| 6 | javax.activation.DataHandler,javax.activation.DataHandlerの配列型,java.util.List<DataHandler>,またはjavax.xml.ws.Holder<DataHandler> | 上記以外※4 |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.