< 前へ | 次へ >

演習 2: Web サービスの作成

この演習では、前の演習でインポートした WSDL ファイルからトップダウン Java™ アドレス帳 Web サービスを作成する方法を学習します。

始める前に、演習 1: サーバーと Web プロジェクトの作成を終了させておく必要があります。
  1. Java EE パースペクティブに 切り替えます (「ウィンドウ」 > 「パースペクティブを開く」>「その他」>「Java EE」)。
  2. 「エンタープライズ・エクスプローラー」ビューで、前の演習でインポートした WSDL ファイルを選択します。
  3. WSDL を右クリックし、「Web サービス」>「Java bean スケルトンを生成」を選択します。
  4. 「Web サービス」ページ: Web サービス・タイプとして「Top down Java bean Web service」を 選択し、サービス定義として AddressBook.wsdl が設定されていることを確認します。 次のオプションを選択します。
    1. スライダーを使用して実行する Web サービス開発のステージを選択します。 スライダーは残りのウィザード・ページはデフォルトに設定しますが、後で各ページでデフォルトから変更することができます。このチュートリアルでは、「サービスの開始 (Start service)」を選択します。 これにより、Web サービスに必要なすべてのコードが作成され、次にサーバーにコードがデプロイされ、サーバーの開始が試行されます。
    2. サーバーの選択: サーバー・リンクをクリックし、WebSphere® v8 サーバーが 選択されていることを確認します。
    3. ランタイムの選択: IBM® JAX-WS ランタイムが選択されていることを確認します。
    4. サービス・プロジェクトの選択: 前の演習で作成した jwsAddressBook プロジェクトを選択します。
    5. サービス EAR プロジェクトの選択: 前の演習で作成した jwsAddressBookEAR を選択します。
    6. クライアントは後で作成します。したがって、クライアント・スライダーが 「クライアントなし (No client)」に設定されていることを確認してください。
    「次へ」をクリックします。
  5. 「WebSphere JAX-WS トップダウン Web サービス構成」ページ:
    • 出力フォルダー: 生成される Java スケルトンのデフォルトの生成場所 jwsAddressBook/src を受け入れます。
    • ターゲット・パッケージ: デフォルトのパッケージ名を受け入れます。
    • ラッパー・スタイルを有効にする: WSDL から Java へのラッパー・スタイル・マッピングを有効にします。document/literal ラップ・パターンを実装する WSDL ドキュメントの場合は、XML スキーマ内にルート要素が宣言され、メッセージ・フローのオペレーション・ラッパーとして使用されます。要求と応答のそれぞれについて別個のラッパー要素定義が存在します。デフォルトを受け入れます。
    • MTOM サポートを有効にする: このチェック・ボックスを選択すると、SOAP Message Transmission Optimization Mechanism が有効になり、バイナリー・コンテンツの伝送が最適化されます。デフォルトを受け入れます。
    • 生成する JAX-WS コードのバージョン: WebSphere Application Server v8.0 から、JAX-WS 2.1 準拠のコードを生成できるようになりました。 このチュートリアルでは、2.1 を選択します。
    • WSDL をプロジェクトへコピー: WSDL ファイルをサービス・プロジェクトにコピーする場合に選択します。後でクライアントを作成するため、このチェック・ボックスを選択します。
    • 順序付け可能な JAXB クラスの生成: WebSphere Application Server v7.0 以上で、Java 6 ファセットを使用可能にすると、java.io.Serializable を実装する JAXB クラスを生成することを選択できます。このインターフェースを実装していないクラスの状態は、シリアライズ済みになったりデシリアライズ済みになったりしません。チュートリアルではこれを選択しないでください。
    • JAX-WS または JAXB バインディング・ファイルの指定: これにより、JAX-WS または JAXB カスタム・バインディング・ファイルを使用できます。チュートリアルではこれを選択しないでください。
    • サービス実装クラス名のカスタマイズ: これにより、デフォルトのポート名をサービス実装クラス名マッピングに変更できます。チュートリアルではこれを選択しないでください。
    • スキーマ・ライブラリーの生成: これを選択すると、Java コンパイラーへの JAX-WS スキーマが実行されて、スキーマが生成されます。 このチュートリアルでは、このオプションを選択しないでください。
    • Web サービス・デプロイメント記述子の生成: JAX-WS Web サービスのデプロイメント情報がランタイムによって動的に生成されます。静的デプロイメント記述子は必要でなくなります。このチェック・ボックスを選択するとそれらの記述子が生成されます。このチュートリアルでは、 デプロイメント記述子は必要ありません。
    「次へ」をクリックします。
Web サービスに必要なコードがすべて生成されます。

スケルトン Bean へのビジネス・ロジックの追加

「Web サービス」ウィザードによって生成されるスケルトン実装 Bean AddressBookPortImpl.java には、ビジネス・ロジックは含まれていません。注釈 @javax.jws.WebService が含まれており、それにより JAX-WS Web サービスであることがランタイムに通知されます。

アドレス帳 Web サービスを予測どおりに機能させるには、この Bean にコードを追加する必要があります。Web サービスは生成した後に自動的にエディターで開きますが、開かない場合は、jwsAddressBook/Java Resources/src/com.addressbook にあります。

  1. 次の現行 saveAddress メソッドを
        public boolean saveAddress(PersonType person) {
            return false;
        }
    次の static フィールドおよびメソッドで置換します。
    	private static Hashtable<String,AddressType> addresses = new Hashtable<String,AddressType>();
        public boolean saveAddress(PersonType person) {
        	addresses.put(person.getName(),person.getAddress());
            return true;
        }
  2. 次の現行 findAddress メソッドを
        public AddressType findAddress(String name) throws FindAddressFault {
            return null;
        }
    次で置換します。
        public AddressType findAddress(String name) throws FindAddressFault {
            return addresses.get(name);
        }
  3. いくつかのエラー・マーカーが表示される場合があります。これらを修正するには、Ctrl+Shift+o をクリックして、インポートを編成します。java.util.Hashtable を選択してインポートします。 これを行うと、エラーがぼかし表示になるはずです。
  4. 更新された実装 Bean を保存します。

汎用サービス・クライアントを使用した Web サービスのテスト

汎用サービス・クライアントを使用すると、クライアントをビルドせずに Web サービスをテストできます。テストするオペレーションを選択し、必要な情報を入力すると、「状況」ペインに結果が表示されます。
  1. 生成した WSDL ファイル jwsAddressBook/WebContent/WEB-INF/wsdl/AddressBook.wsdl を選択し、右クリックして「Web サービス」 > 「汎用サービス・クライアントのテスト」を選択します。 代わりに、プロジェクトの「サービス」ノードの下でサービスを選択するか、または 「サービス」ビューの「JAX-WS Web サービス」ノードの下でサービスを選択し、そこから汎用サービス・クライアントを起動することもできます。
  2. SaveAddress 操作を選択します。
  3. 各フィールドに値を入力し、「起動」をクリックします。
  4. FindAddress 操作を選択します。
  5. saveAddress 操作を呼び出すときに選択した名前を入力し、「起動」をクリックします。
  6. この名前に保存しておいた情報が、「状況」ペインに表示されます。

演習のチェックポイント

これで、『演習 3: Web サービス・クライアントの作成 』を開始する準備が完了しました。

< 前へ | 次へ >
トピックのタイプを示すアイコン チュートリアルの演習のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: jaxwstd_exercise12.html