JAX-RPC - JAX-RPC 変換ツールの有効な候補

JAX-RPC 変換ツールによる検証により、このスキャンでの JAX-RPC Web サービスは、JAX-RPC 変換ツールを使用した JAX-WS へのバイナリー変換に適していると判断されました。 この規則により、JAX-RPC 固有のパッケージおよび構成ファイルの使用にフラグを立てます。 また、この規則により、XML マッピング・ファイルでの jaxrpc-mapping-file タグの使用にフラグを立てます。 次の表に、この規則の影響を受ける Java パッケージ、構成ファイル、および XML マッピング・ファイルをリストします。

パッケージ

構成ファイル

XML マッピング・ファイル

  • javax.xml.rpc
  • javax.xml.rpc.encoding
  • javax.xml.rpc.handler
  • javax.xml.rpc.handler.soap
  • javax.xml.rpc.holders
  • javax.xml.rpc.server
  • javax.xml.rpc.soap
  • ibm-webservices-ext.xmi
  • ibm-webservices-bnd.xmi
  • ibm-webservicesclient-ext.xmi
  • ibm-webservicesclient-bnd.xmi
  • ws-security.xml
  • webservices.xml
  • web.xml
  • ejb-jar.xml
  • ibm-webservicesclient-bnd.xmi
  • application.xml

Java API for XML-based RPC (JAX-RPC) は、Liberty でも Liberty Core でもサポートされていません。 このテクノロジーは、WebSphere Application Server traditional V9.0 で非推奨となったため、今後のバージョンでは削除される可能性があります。 戦略的なマイグレーション・パスでは JAX-WS を使用します。 相対的な作業は、選択したマイグレーション・パスに応じて変わります。

以下の表では、プロジェクトに影響を与える可能性のあるため、4 つのオプションを比較します。

プロジェクトの要素

オプション 1

JAX-RPC 変換ツールを使用して JAX-RPC Web サービスを JAX-WS Web サービスに移行する

オプション 2

手動で JAX-RPC web サービスを JAX-WS web サービスに移行する

オプション 3

Liberty で Apache Axis 1 JAX-RPC エンジンを使用する

オプション 4

WebSphere Application Server traditional をそのネイティブ JAX-RPC エンジンと一緒に使用する

サポートされるソリューション

ある

JAX-WS は、Liberty Core を除き、すべての Liberty エディションで構成可能なフィーチャーとしてサポートされます。 Maven および Gradle 用の WebSphere Liberty JAX-RPC 変換ツールをダウンロードしてください

ある

JAX-WS は、Liberty Core を除き、すべての Liberty エディションで構成可能なフィーチャーとしてサポートされます。

ない

Axis 1 はサポートされていません。

ある

JAX-RPC は、WebSphere Application Server traditional でサポートされています。

重要なソリューション

ある

JAX-WS は、Liberty Core を除き、すべての Liberty エディションに戦略的です。

ある

JAX-WS は、Liberty Core を除き、すべての Liberty エディションに戦略的です。

ない

Axis 1 は、現在では開発されていません。

ない

JAX-RPC は、WebSphere Application Server traditional で非推奨となったため、今後のバージョンでは削除される可能性があります。

実装の複雑さ

アプリケーションは、JAX-RPC 変換ツールの使用について検証されました。 JAX-RPC サービスは、ツールによって JAX-WS Web サービスに変換できます。

このオプションは、JAX-RPC クライアントと JAX-RPC Web サービスの数が多い場合は複雑になる可能性があります。 JAX-RPC 変換ツールを使用せずに、JAX-RPC サービス を JAX-WS に移植するには、コード・ベースが多くの変更が必要です。

アプリケーションで既に Axis 1 を使用している場合、このオプションは複雑ではありません。 使用していない場合、このオプションの複雑さは中程度です。

JAX-RPC Web サービスから別のエンジンにマイグレーションする際、ほとんどのコード・ベースは保持されます。

拡張機能

ある

JAX-WS は、アノテーション、JAXB バインディング、SOAP 1.2 などの多数の拡張機能を提供します。

ある

JAX-WS は、アノテーション、JAXB バインディング、SOAP 1.2 などの多数の拡張機能を提供します。

いいえ

JAX-RPC には、JAX-WS にある多くの拡張機能がありません。

ない

JAX-RPC には、JAX-WS にある多くの拡張機能がありません。

仕様の準拠

ある

ある

はい

JAX-RPC はまだ Java EE 仕様の一部ですが、Java EE 6 では非推奨です。

はい

JAX-RPC はまだ Java EE 仕様の一部ですが、Java EE 6 では非推奨です。

推奨事項

アプリケーションが JAX-RPC 変換ツールの要件を満たす場合に、このオプションを使用します。

JAX-RPC Web サービスがいくつかあり、アプリケーションが JAX-RPC 変換ツールの要件を満たしない場合に、このオプションを使用します。

JAX-RPC Web サービスが既に Axis 1 で実行されている場合は、このオプションを使用します。

JAX-RPC Web サービスが既に WebSphere Application Server traditional で実行されているか、まだ Axis 1 で実行されていない JAX-RPC Web サービスが多数ある場合は、このオプションを使用します。

JAX-RPC 変換ツールを使用して JAX-RPC Web サービスを JAX-WS Web サービスに移行する

Maven および Gradle 用の WebSphere Liberty JAX-RPC 変換ツールから JAX-RPC 変換ツールをダウンロードしてください

JAX-RPC 変換ツールを使用した JAX-RPC から JAX-WS へのアプリケーションのマイグレーションについては、オンライン資料の Maven を使用した JAX-RPC アプリケーションの Liberty へのマイグレーションまたは Gradle を使用した JAX-RPC アプリケーションの Liberty へのマイグレーションを参照してください。

手動で JAX-RPC web サービスを JAX-WS web サービスに移行する

JAX-RPC から JAX-WS へのアプリケーションのマイグレーションについては、オンライン資料の Web サービスのマイグレーション・シナリオ: JAX-RPC から JAX-WS および JAXB へを参照してください。

JAX-RPC と JAX-WS の違いについて詳しくは、 JAX-WS アプリケーション・デプロイメント・モデルを参照してください。

Liberty で Apache Axis 1 JAX-RPC エンジンを使用する

Axis 1 を既に使用している場合、それを Liberty で使用するには、Axis 1 ライブラリーを Liberty クラスパスに含める必要があります。

埋め込みの JAX-RPC を使用する場合、Axis 1 を使用するように web サービスを変換できます。 以下のプロシージャーでは、web サービスを Red Hat JBossからAxis 1に移行する方法について説明します。

  1. Axis 1.0 ライブラリーを Apache Web サイトからダウンロードします。
    注: Axis 2.0 は、JAX-WS を使用し、JAX-RPC Web サービスをサポートしません。
  2. Axis ライブラリーをクラスパスに含めます。 ライブラリーは、サーバーのクラスパスまたはアプリケーションの WEB-INF/lib ディレクトリーのいずれかに含めることができます。
  3. Web サービスへの参照を web.xml ファイルから削除します。
  4. Axis 管理サーブレットを web.xml ファイルに追加します。 web.xml ファイルの例については、 拡張インストール: 独自の Webapp への Axis の追加 (Apache Web サイト) を参照してください。
  5. 以下のコマンドを使用して、WSDL ファイルから Web サービスを再生成します。

       java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t    java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t -s -o <Output directory> <WSDL file>

    このコマンドについて詳しくは、 WSDL2Java 資料 (Apache Web サイト) を参照してください。

  6. WEB-INF ディレクトリー内に server-config.wsdd という XML ファイルを作成することで、Axis デプロイメント記述子を作成します。

    WSDD 構成エレメントについて詳しくは、 デプロイメント (WSDD) 参照 (Apache Web サイト) を参照してください。

  7. 新しい環境に合うようクライアント・コードを変更します。 サーバーはコンテナーとして使用されないため、JNDI 参照を使用することはできません。 JNDI 参照は削除して、URL への直接参照に置き換える必要があります。

    例えば、以下のメソッドには JNDI 検索があります。


    public DemoType getService() throws Exception {

    javax.naming.InitialContext ctx = new javax.naming.InitialContext();

    DemoService service = (DemoService)ctx.lookup("java:comp/env/service/Demo");

    return service.getDemoService();
    }

    ルックアップは以下のように置き換える必要があります。

    private com.ibm.demo.webservices.server.DemoType getService() throws Exception {

    com.ibm.demo.webservices.server.DemoService_ServiceLocator service = new com.ibm.demo.webservices.server.DemoService_ServiceLocator();

    com.ibm.demo.webservices.server.DemoType demoType = service.getDemoService();

    return demoType;

    }

WebSphere Application Server traditional をそのネイティブ JAX-RPC エンジンと一緒に使用する

WebSphere Application Server JAX-RPC エンジンを使用する場合は、WebSphere Application Server traditional を使用する必要があります。 JAX-RPC は、Liberty ではサポートされていません。 Liberty を使用するには、他のオプションのいずれかを選択する必要があります。

設定のみ

JAX-RPC 構成ファイルが検出されても、このアプリケーション内で JAX-RPC Java API が使用されていた形跡がない場合、その構成ファイルは以前使用していて現在は不要になった JAX-RPC テクノロジーの残骸である可能性があります。 使用されていない構成は削除できます。