Cosminexus アプリケーションサーバ V8 Webサービス開発の手引
JavaからWSDLへのマッピングでの注意事項について説明します。
JavaBean(リクエストbean,レスポンスbean,フォルトbean)生成時には,ジェネリクスの型が削除されます。ジェネリクスの型削除の例を次の表に示します。
表13-10 ジェネリクスの型削除の例
| 型削除前 | 型削除後 |
|---|---|
| T※ | NumbersData |
| List<E> | List<java.lang.Object> |
| List<? extends NumbersData> | List<NumbersData> |
| List<? super NumbersData> | List< java.lang.Object > |
| Map<K, V> | Map< java.lang.Object, java.lang.Object > |
| Map<? extends NumbersKey, ? extends NumbersData> | Map<NumbersKey, NumbersData> |
| Map<? super NumbersKey, ? super NumbersData> | Map< java.lang.Object, java.lang.Object > |
| Iterator<E> | Iterator< java.lang.Object > |
| Iterator<? extends NumbersData> | Iterator<NumbersData> |
| Iterator<? super NumbersData> | Iterator< java.lang.Object > |
| List<List<? extends NumbersData>> | List<List<NumbersData> |
メソッド引数や戻り値をjavax.jws.WebParamやjavax.jws.WebResultアノテーションでカスタマイズしている場合も,ジェネリクスの型は削除されます(カスタマイズも有効)。また,メソッド引数や戻り値がwrapperスタイルであっても,ジェネリクスの型は削除されます。なお,メソッド引数や戻り値がnon-wrapperスタイルの場合にはジェネリクスの型は削除されません。
CosminexusのJAX-WS機能は,JAX-WS 2.1仕様のComformance 3.14に対応しています。コマンド実行時には,必要に応じて次に示すJAXBアノテーションが解釈されます。
CosminexusのJAX-WS機能ではMIMEバインディングはサポートされません。
CosminexusのJAX-WS機能が提供するアノテーションプロセッサでは,javax.xml.bind.annotation.XmlListアノテーションはwrapperスタイルの場合には解釈されますが,non-wrapperスタイルの場合には解釈されません。
これらのJAXBアノテーションで,SEIおよびサービス実装クラス以外の引数や戻り値をアノテートした場合の動作は保証されません。
CosminexusのJAX-WS機能が提供するアノテーションプロセッサでは,javax.xml.bind.annotation.XmlJavaTypeAdapterアノテーションおよびjavax.xml.bind.annotation.XmlMimeTypeアノテーションは,SEIまたはサービス実装クラスの引数や戻り値,またはJavaBeanのフィールドをアノテートした場合に解釈されます。パッケージや,インタフェース,またはクラスをアノテートした場合の動作は保証されません。
開発したWebサービスを呼び出すときに,Webサービスの引数や戻り値のサブクラスを使用するとエラーが発生します。正常に呼び出すには,SEIおよびWebサービス実装クラスを定義するときに,javax.xml.bind.annotation.XmlSeeAlsoアノテーションによってサブクラスを関連づける必要があります。
wrapperスタイルの場合にはメソッド引数や戻り値にジェネリクス型を使用できますが,non-wrapperスタイルの場合にはジェネリクス型を使用できません。
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.