JAX-RPC Web サービス・クライアントの実装

Web サービス・クライアントは、Web Services for Java™ Platform, Enterprise Edition (Java EE) 仕様および Java API for XML-based RPC (JAX-RPC) プログラミング・モデルに基づいて開発できます。

始める前に

ベスト・プラクティス ベスト・プラクティス: IBM® WebSphere® Application Server は、 Java API for XML-Based Web Services (JAX-WS) プログラミング・モデルおよび Java API for XML-based RPC (JAX-RPC) プログラミング・モデルをサポートします。 JAX-WS は、JAX-RPC プログラミング・モデルが提供する基盤を拡張する、次世代の Web サービス・プログラミング・モデルです。戦略的 JAX-WS プログラミング・モデルを使用すると、標準ベースの注釈モデルのサポートによって、Web サービスおよび Web クライアントの開発が容易になります。JAX-RPC プログラミング・モデルとアプリケーションは引き続きサポートされますが、Web サービス・アプリケーションおよびクライアントを新規に開発する場合は、実装が容易な JAX-WS プログラミング・モデルをご利用ください。bprac

このタスクについて

JAX-RPC プログラミング・モデルに基づく Web サービス・クライアントの開発

Web サービス・クライアント・プログラミング・モデルは、Java EE 環境での Web サービスのアクセスに関するガイドラインを提供します。Web サービス・クライアントは、Web Services for Java Platform, Enterprise Edition (Java EE) 仕様および Java API for XML-based remote procedure call (JAX-RPC) 仕様に基づいて開発できます。アプリケーション・サーバーは、 JAX-RPC プログラミング・モデルに基づいた Enterprise JavaBeans (EJB) クライアント、Java EE アプリケーション・クライアント、JavaServer Pages (JSP) ファイルとサーブレットをサポートしています。

管理対象および管理対象外 JAX-WS Web サービス・クライアント

アプリケーション・サーバーは、JAX-RPC プログラミング・モデルを使用する場合、管理対象と管理対象外の両方の Web サービス・クライアントをサポートします。

  • 管理対象クライアント

    Java EE クライアント用 Web サービスのクライアントは Java Specification Requirements (JSR) 109 により定義され、管理対象クライアントとなります。これは、これらのクライアントが Java EE コンテナー内で稼働するためです。これらのクライアントは、エンタープライズ・アーカイブ (EAR) ファイルとしてパッケージされており、サービス要求元として動作するコンポーネントが含まれています。 こうしたコンポーネントは Java EE クライアント・アプリケーションであっても、サーブレットや JavaServer Pages (JSP) のような Web コンポーネントであっても、またはセッション Enterprise JavaBeans (EJB) であってもかまいません。Web サービスの管理対象クライアントでは JSR 109 API とデプロイメント情報を使用して Web サービスを検索し、呼び出します。

    管理対象クライアントの場合、サービス検索は Java Naming and Directory Interface (JNDI) 検索を介して行われます。『UserName トークン Web Services Security の設定』、『デジタル署名 Web Services Security』、および『Lightweight Third-Party Authentication (LTPA) トークン Web Services Security』を参照してください。以下に、JSR 109 準拠のコンテキスト検索のコード例を示します。

    InitialContext ctx = new InitialContext();
        FredsBankServiceLocator locator
    =(FredsBankService)ctx.lookup("java:comp/env/service/FredsBankService");
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance();  

    管理クライアントのコンテキスト検索のインスタンスを作成している場合、 サービス・ロケーターに new() メソッドを使用しないでください。 以下に、JSR 109 に準拠していない例を示します (新規 ServiceLocator)。

    Properties prop = new Properties();
        InitialContext ctx = new InitialContext(prop);
        FredsBankServiceLocator locator = new FredsBankServiceLocator();
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance(); 

    lookup() 呼び出しがない場合、 クライアントにはデプロイメント記述子へのアクセスがありません。JAX-RPC Web サービスの場合、Web Services Security 構成は、Web サービス・デプロイメント記述子にあります。

  • 管理対象外クライアント

    Java EE コンテナー内で稼働せずに、JAX-RPC ランタイム環境を使用して Web サービスを呼び出す Java Platform, Standard Edition (Java SE 6) クライアントは、管理対象外クライアントと呼ばれます。Web サービスの管理対象外クライアントは、WSDL ファイルを直接検査し、JAX-RPC API を使用して Web サービスの呼び出しを作成することができる、独立型の Java クライアントです。これらのクライアントは、どのようなデプロイメント情報も含まない JAR ファイルとしてパッケージされます。

    Java アプリケーションが Web サービス・クライアントとして機能するためには、WSDL ファイルと Java アプリケーションとの間のマッピングが存在しなければなりません。JAX-RPC Web サービスの場合、マッピングは、JAX-RPC 仕様によって定義されます。Java コンポーネントを使用して、 コンポーネントのインターフェースとバインディング情報を WSDL ファイル内に指定し、 サービス要求を受け入れるようにアプリケーション・サーバー・インフラストラクチャーを設計することにより、 Web サービスを実装できます。このプロセス全体は、Web Services for Java EE 仕様に基づいています。JAX-RPC 仕様では、WSDL ファイル、Java コード、および XML スキーマのタイプ間のマッピングが定義されています。

手順

  1. アクセスする Web サービス用の Web サービス記述言語 (WSDL) ファイルを取得します。

    WSDL ファイルは、E メールか Uniform Resource Locator (URL) を使用してサービス・プロバイダーから取得するか、Universal Description, Discovery and Integration (UDDI) レジストリーで検索して取得できます。

  2. WSDL2Java コマンド行ツールを使用して、 WSDL ファイルからクライアント・バインディングを開発します サービス・エンドポイント・インターフェースや実装、生成されるサービス・インターフェース、デプロイメント記述子の ibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmi など、Web サービスを呼び出すのに必要な情報が生成されます。
  3. クライアント実装を完了します。 Web サービスの呼び出しに使用されるクライアント・アプリケーション・コードを作成します。
    JSR 109 仕様の第 4 章を参照してください。サポートされる標準および仕様の完全なリストについては、Web サービス仕様書および API 文書を参照してください。
    注: アプリケーションが JSR 109 クライアントに複数のスレッドを作成する場合、メタデータ (WebSphere Application Server 構成を含む) はスレッドにコピーされず、Global Security Handler は呼び出されません。

    WebServicesSamples アプリケーションにある JAX-RPC ベースの Web サービスのサンプルである GetQuote クライアント (ダウンロードで入手可能) を参照できます。 詳しくは、バージョン 8.0 サンプルに関する情報を参照してください。

  4. (オプション) Web サービス対応クライアント Java アーカイブ (JAR) ファイルをエンタープライズ・アーカイブ (EAR) ファイルにアセンブルします Java EE クライアント・コンテナーで実行される管理対象 JAX-RPC Web サービス・クライアントを開発する場合、このステップを実行します。
  5. (オプション) Web サービス対応クライアント Web アプリケーション・アーカイブ (WAR) ファイルをエンタープライズ・アーカイブ (EAR) ファイルにアセンブルします Java EE クライアント・コンテナーで実行される管理対象 JAX-RPC Web サービス・クライアントを開発する場合、このステップを実行します。
  6. (オプション) クライアント・デプロイメント記述子を構成します 管理対象 JAX-RPC クライアントを開発している場合は、このステップを行う必要があります。
  7. (オプション) ibm-webservicesclient-bnd.xmi デプロイメント記述子を構成します Java EE クライアント・コンテナーで実行される管理対象 JAX-RPC クライアントをデプロイし、 デフォルトのクライアント設定をオーバーライドする場合は、このステップを実行します。ibm-webservicesclient-bnd.xmi デプロイメント記述子に関する詳細は、ibm-webservicesclient-bnd.xmi アセンブリー・プロパティーを参照してください。
  8. (オプション) Web サービス・アプリケーションをデプロイします Java EE クライアント・コンテナーで実行される管理対象 JAX-RPC Web サービス・クライアントをデプロイする場合、このステップを実行します。
  9. Web サービス対応 クライアント・アプリケーションをテストします 管理対象外クライアント JAR ファイルまたは管理対象クライアント・アプリケーション をテストできます。

タスクの結果

Web サービス・クライアント・アプリケーションの作成とテストが完了しました。

次のタスク

Web サービス・アプリケーション・クライアントを開発し、そのクライアントが静的にバインドされた後、実装で使用されるサービス・エンドポイントは、開発プロセス中に使用した WSDL ファイルで識別されるものとなります。Web サービス・アプリケーションのインストール中、またはインストール後に、サービス・エンドポイントの変更が必要になる場合があります。管理対象クライアントの場合、 エンドポイントは、管理コンソールまたは wsadmin スクリプト・ツールを使用して変更できます。

また、Web サービス・クライアントの拡張を実装することにより、Web サービスをカスタマイズすることもできます。これらの拡張の例としては、 SOAP ヘッダーでの値の送受信、HTTP または JMS トランスポート・ヘッダーの送受信、 カスタム・バインディングの使用があります。これらの拡張の詳細については、Web サービス・クライアントの拡張の実装に関する説明を参照してください。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_devwbsjaxrpcclient
ファイル名:twbs_devwbsjaxrpcclient.html