Oracle® Fusion Middleware Oracle WebLogic Server JAX-WS を使用した Web サービス入門 11g リリース 1 (10.3.1) B55565-01 |
|
戻る |
この節では、JAX-RPC の Web サービスおよびクライアントを JAX-WS へ移行するためのヒントを提供します。次の表に、説明するトピックをまとめます。
JAX-RPC Web サービスを移行する場合、JAX-RPC Web サービスを生成するには、WSDL ファイルから、トップダウンのアプローチを使用して元の WSDL ファイルを保存します。詳細については、「WSDL ファイルから開始する WebLogic Web サービスの開発 : 主な手順」を参照してください。
注意 : WebLogic の信頼性のあるメッセージング、会話形式またはバッファ付きの Web サービスなど、JAX-RPC の機能が JAX-WS でサポートされない場合があります。この場合、アプリケーションは再構築してからでないと移行することはできません。 |
表 8-1 JAX-RPC の Web サービスおよびクライアントを JAX-WS へ移行するためのヒント
トピック | 説明 |
---|---|
WebLogic Web サービスの最終コンテキスト ルートの設定 |
WebLogic Web サービスの最終コンテキスト ルートの設定方法を説明する。JAX-WS では @WLXXXTransport JWS アノテーションの使用がサポートされていない。これらのアノテーションは JAX-RPC でのみサポートされる。 |
|
JAX-WS でサポートされる WebLogic 独自のアノテーションについて説明する。 |
|
jwsc Ant タスクを使用して JAX-WS Web サービスを生成する際に WSDL ファイルを生成する方法を説明する。 |
|
すべてのデータ バインディング タスクを管理するための Java Architecture for XML Binding (JAXB) の使用について説明する。 |
|
EJB 2.1 からの EJB 3.0 における変更点について説明する。JAX-WS では EJB 3.0 がサポートされるが、JAX-RPC でサポートされるのは EJB 2.1 のみ。 |
|
SOAP バインディングを設定するためのガイドラインについて説明する。RPC 形式はサポートされるが、JAX-WS では推奨されない。 |
|
JAX-WS への移行時に、現在の JAX-RPC SOAP メッセージ ハンドラを書き直さなければならない点について説明する。 |
|
JAX-WS クライアントを呼び出すように JAX-RPC クライアントを書き直さなければならない点について説明する。 |
WebLogic Web サービスの最終コンテキスト ルートはさまざまな方法で設定できます。『Oracle Fusion Middleware Oracle WebLogic Server Web サービス リファレンス』の「WebLogic Web サービスの最終コンテキスト ルートの確定方法」を参照してください。
この節で説明するように、JAX-RPC Web サービスを定義する際は、@WLXXXTransport JWS アノテーションを使用してコンテキスト ルートを指定できます。この @WLXXXTransport JWS アノテーションは、JAX-WS Web サービスには無効です。JAX-RPC Web サービスで使用する場合、他の方法の 1 つを使用するためにこのアノテーションを削除して JWS ファイルを更新する必要があります。
JAX-WS では以下の WebLogic 独自のアノテーションがサポートされています。
@Policy
@Policies
@SecurityPolicy
@SecurityPolicies
@WssConfiguration
その他の WebLogic 独自のアノテーションは、JAX-WS への移行時に JAX-RPC アプリケーションからすべて削除する必要があります。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Web サービス リファレンス』の「WebLogic 固有のアノテーション」を参照してください。
JAX-RPC Web サービスで jwsc ファイルを実行すると、指定した出力ディレクトリに WSDL ファイルが生成されます。JAX-WS Web サービスの場合、WSDL ファイルはサービス エンドポイントのデプロイ時に生成されます。WSDL ファイルを出力ディレクトリに生成するには、jwsc Ant タスクの <jws> 子要素で wsdlOnly 属性を指定する必要があります。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Web サービス リファレンス』の「jwsc」を参照してください。
JAX-WS では、Java Architecture for XML Binding (JAXB) (http://jcp.org/en/jsr/detail?id=222
を参照) を使用してあらゆるデータ バインディング タスクを管理します。アプリケーションで XMLBean または Tylar を使用してカスタム タイプをサポートしている場合、JAXB を使用するようにそれらを変更する必要があります。JAXB を使用する方法の詳細については、「JAXB データ バインディングの使用」を参照してください。
JAX-WS では EJB 3.0 がサポートされますが、JAX-RPC では EJB 2.1 しかサポートされません。
EJB 3.0 では、EJB を実装する場合に必要な EJB リモートおよびホーム インタフェース クラスおよびデプロイメント記述子ファイルを、手動で作成するのではなく、自動的に生成することができるメタデータ アノテーションが導入されました。
EJB 3.0 Bean クラス要件および 2.x からの変更点については、『Enterprise JavaBeans (EJB) 3.0』の「Bean ファイルのプログラミング : 要件および 2.X からの変更点」を参照してください。
SOAPBinding.Style.RPC スタイルの使用はサポートされていますが、JAX-WS では推奨されません。このスタイルは SOAPBinding.Style.DOCUMENT へ変更するようお勧めします。
SOAP API は似ていますが、JAX-RPC SOAP ハンドラは、JAX-WS で動作するよう変更する必要があります。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server JAX-WS を使用した Web サービスの高度な機能のプログラミング』の「SOAP メッセージ ハンドラの作成と使用」を参照してください。
JAX-RPC と JAX-WS のクライアント API は完全に異なるため、JAX-RPC クライアントを書き直す必要があります。JAX-WS クライアントの記述に関する詳細については、『JAX-WS を使用した WebLogic Web サービスの開始』の「Web サービスの呼び出し」を参照してください。