4 WebLogic Webサービスのアップグレード

WebLogicおよびRESTful WebサービスをOracle WebLogic Server 10.xから14cにアップグレードする手順について確認します。

この章の内容は次のとおりです。

ノート:

関連するWebサービス・ランタイムはこのリリースでもサポートされるため、WebLogic Webサービス(JAX-WSまたはJAX-RPC) 10.3.xは変更しなくてもWebLogic Server 14cで引き続き実行できますが、対象のWebサービス・ランタイムは非推奨になっており、今後のリリースの製品からは削除される予定です。このため、この章の説明に従って、10.3.xのWebサービスを14cにアップグレードすることをお薦めします。

JAX-RPC APIは、12.2.xから非推奨となり、今後のリリースで削除される予定です。JAX-RPCスタックへのアップグレードはお薦めしません。

10.3.xのRESTful Webサービス(JAX-RS)の14cへのアップグレード

10.3.xでは、RESTful Webサービス(JAX-RS)参照実装(RI)のJersey 1.9および1.1.5.1 Java APIをサポートするために、一連の事前構築済共有ライブラリがWebLogic Serverに付属しています。14cでは、WebLogic ServerはデフォルトでJersey 2.29 (JAX-RS 2.1 RI)をサポートしています。10.3.xの事前作成された共有ライブラリを使用するには、WebLogic Serverインスタンスにそのライブラリを登録し、Jerseyサーブレットを使用して共有ライブラリを参照するためにweb.xmlおよびweblogic.xmlのデプロイメント記述子をそれぞれ変更する必要があります。

14cでは、WebLogic ServerはデフォルトでJersey 2.29 (JAX-RS 2.1 RI)をサポートし、共有ライブラリとしてのWebLogic Serverへの登録は必要ありません。

Jersey 2.29 (JAX-RS 2.1 RI)を使用するには、次のように、10.3.x RESTful Webサービス・アプリケーションを変更する必要があります:

  1. Jersey 2.xコンテナを参照するように、アプリケーションのデプロイメント・ディスクリプタを更新します。『Jersey 2.29 User Guide』「Servlet-based Deployment」を参照してください。

    ノート:

    下位互換性のため、次の例に示すようにcom.sun.jersey.spi.container.servlet.ServletContainerへの参照を引き続き指定できます。ただし、推奨されるのは、かわりにJersey 2.xコンテナを参照するように、アプリケーションのデプロイメント・ディスクリプタを更新することです。

    たとえば、次の<web-app>コンテンツで、com.sun.jersey.spi.container.servlet.ServletContainerorg.glassfish.jersey.servlet.ServletContainerに置き換えます。

    <web-app>
        <servlet>
            <display-name>My Jersey Application</display-name>
            <servlet-name>MyJerseyApp</servlet-name>
            <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>myPackage.myJerseyApplication</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>MyJerseyApp</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>
    </web-app>
    

    追加の詳細な構成オプションについては、『Jersey 2.29 User Guide』を参照してください。

  2. 該当する場合、Jersey 1.xサーバーAPIを使用するすべてのアプリケーションを更新して、対応する標準JAX-RS 2.1またはJersey 2.x APIをかわりに使用します。Jersey 1.x (JAX-RS 1.1 RI) サーバー APIのサポートはこのリリースで削除されたため、それらを参照するアプリケーションは機能しなくなります。
  3. 『Oracle WebLogic Server RESTful Webサービスの開発と保護』「RESTful Webサービス・クライアントの開発」の説明に従って、javax.ws.rs.client APIを使用するようにクライアントを更新します。

    ノート:

    Jersey 1.18クライアント・パッケージ(com.sun.jerseyパッケージとそのネスト・パッケージ、およびweblogic.jaxrs.api.clientパッケージなど)のサポートは、WebLogic Serverのこのリリースで非推奨になりましたが、後方互換性のために維持されています。ただし、多くのFusion Middlewareコンポーネント(Oracle Web Services Managerなど)は標準JAX-RS 2.0クライアントAPIに移行したため、Jersey 1.x JAX-RSクライアントAPIと互換性がありません。したがって、できるだけ早く、標準JAX-RS 2.0 APIを使用するようにRESTfulクライアント・アプリケーションを更新することをお薦めします。

    Jersey 1.x JAX-RS RIクライアントAPIは、Jersey 2.x (JAX-RS 2.0 RI)と互換性がありません。

10.xのWebLogic Webサービス(JAX-WS)の14cへのアップグレード

10.xのWebLogic Webサービスを14cにアップグレードするために必要なステップはありません。JAX-WSのWebサービスは、変更や再コンパイルを行わずにWebLogic Server 14cへ再デプロイすることができます。

WebLogic JAX-RPC WebサービスのWebLogic JAX-WSスタックへのアップグレード

WebLogic JAX-WSのランタイムは、JAX-WS (The Java API for XML-Based Web Services) 2.2仕様とWeb Services for Java EE v1.3 (JSR 109)仕様に基づいています。JAX-WS 2.0から、JavaプラットフォームおよびWebLogic ServerにおいてJAX-WSテクノロジがJAX-RPCに取って替わりました。WebLogicアプリケーションのJAX-RPC Webサービスは、JAX-WSにアップグレードする必要があります。

ノート:

JAX-RPC APIは、12.2.xから非推奨となり、今後のリリースで削除される予定です。JAX-RPCスタックへのアップグレードはお薦めしません。

この項では、WebLogic JAX-WSスタックを使用するようにWebLogic JAX-RPC Webサービスをアップグレードする方法を説明します。

WebLogic Server JAX-RPC Webサービスのアップグレードには主に次のタスクが含まれます。

  • WebサービスEJBの2.xから3.xへのアップグレード。

    JAX-WSはEJB 3.0および3.xをサポートします。EJB 2.xはサポートしません。

  • JWSをアップグレードし、JAX-RPC固有の機能を類似のJAX-WS機能にマップします。

    WebLogic JAX-RPC Webサービス機能とJAX-WS 12.x機能の間に1対1で対応するものはありません。

  • WebサービスをビルドするAntビルド・スクリプトを更新して、jwswsdlcおよびclientgenタスクのtype属性の値を"JAXWS" (たとえば、type="JAXWS")に変更します。

  • JAX-WS clientgen Antタスクを使用して新規のJAX-WSクライアントを生成します。

JAX-WSのアップグレードに関する考慮事項

JAX-WSにアップグレードする際、次の点を考慮してください。

  • JAX-WS仕様はdocument-literalおよびrpc-literal形式をサポートしていますが、rpc-encodedはサポートしていません。

  • SOAP配列はJAX-WSではサポートされません。

『Oracle WebLogic Server JAX-WS Webサービスの開発』を参照してください。