「Web サービス」ウィザードを使用すると、既存の WSDL 文書からスケルトン Bean が簡単に作成できます。 スケルトン Bean には、WSDL 文書で説明するオペレーションに対応する一連のメソッドが含まれています。
Bean が作成されると、各メソッドには、Bean の編集をすることによって置き換えられる、単純な実装ができます。
始める前に
前提条件:
- ご使用のコンピューターの速度によっては WebSphere® Application Server が開始するまでに数分かかることがあるため、WebSphere Application Server を使用している場合は、Web サービス・ウィザードを実行する前にサーバーを開始しておくことを強くお勧めします。サーバーを開始するには、「サーバー」ビューでサーバーを選択し (「ウィンドウ」>「ビューの表示」>「サーバー」)、右クリックして「開始」を選択します。
- WSDL 文書を作成またはディスカバーし、プロジェクトにインポートします。使用できる WSDL ファイルは、サービス要素を含むものです。
このタスクについて
WebSphere JAX-WS ランタイム環境を使用してスケルトン
Java™ Bean を WSDL 文書から作成する方法:
手順
- Java EE パースペクティブに切り替えます (「ウィンドウ」>「パースペクティブを開く」>「Java EE」)。
- エンタープライズ・エクスプローラー・ビューで
、作成またはインポートした WSDL ファイルを選択します。
- 「ファイル」>「新規」>「その他」の順にクリックします。「Web サービス」を選択して、各種の Web サービス・ウィザードを表示します。「Web サービス」ウィザードを選択します。「次へ」をクリックします。
- 「Web サービス」ページ: Web サービス・タイプとして「Top down Java bean Web service」を
選択します。また、以下を行うことを選択することもできます。
- スライダーを使用して実行する Web サービス開発のステージを選択します。
これにより、残りのウィザードのパネルでいくつかのデフォルト値が設定されます。
- 開発: Web サービスの WSDL 定義および実装を開発します。
これには、生成されたコード、WSDL ファイル、デプロイメント記述子、および Java ファイル (該当する場合) が入るモジュールの作成などのタスクが含まれます。
- アセンブル: これにより、Web サービスまたはクライアントをホストするプロジェクトが、ターゲット・アプリケーション・サーバーによって要求されたときに EAR に関連付けられるようになります。
- デプロイ: これにより、サービスのデプロイメント・コードが作成されるようになります。
- インストール: これにより、Web モジュールと EAR がターゲット・サーバーにインストールされ、構成されます。
WSDL ファイルのエンドポイントに対する変更が必要な場合、このステージで変更が行われます。
- 始動: これにより、サービスがサーバーにインストールされると、サーバーが始動するようになります。
- テスト: これにより、汎用サービス・クライアント、Web サービス・エクスプローラー、またはサンプル JSP を使用するなどの、サービスをテストするためのさまざまなオプションが提供されます。
- サーバー・ランタイムの選択: デフォルト・サーバーが表示されます。
サービスを別のサーバーにデプロイしたい場合には、サーバー・リンクをクリックして別のサーバーを指定してください。
このタスクでは、以下のサーバー・ランタイム環境がサポートされます。
- WebSphere Application Server V7.0 以上
- WebSphere Application Server Liberty Profile V8.5.5
- Web サービス・ランタイムの選択: デフォルトのランタイムが表示されます。サービスを IBM® WebSphere JAX-WS ランタイムにデプロイするには、ランタイム・リンクをクリックし、開いたウィンドウでそれを選択します。
- サービス・プロジェクトとサービス EAR プロジェクトの選択: ワークスペースで選択されたプロジェクトが表示されます。サポートされるのは、
Java 5.0、Java 6.0、または Java 7.0 の
ファセットが使用可能になっている Web プロジェクトのみです。
別のプロジェクトと EAR を選択するには、プロジェ
クト・リンクをクリックするか、または名前を入力し
て、ウィザードでプロジェクトを作成できるようにし
ます。 クライアント Web プロジェクトとして選択したプロジェクトが、サービス Web プロジェクトとは異なること、またはクライアントが生成した成果物によってサービスが上書きされるようになっていることを確認します。
JAX-WS Web サービスでは、サーバー・プロジェクトとクライアント・プロジェクトで同じ EAR を共有できます。
- クライアントを作成したい場合は、生成するプロキシーのタイプを
選択し、クライアントについてステップ 1 から 4 を繰り返します。 クライアントは、後で、IBM WebSphere JAX-WS ランタイム環境を使用した WSDL 文書からの Web サービス・クライアントの作成で概説する手順に従って作成することができます。
- Web サービスのモニター: TCP/IP モニターを介して Web サービス・トラフィックを送信します。これにより、Web サービスによって生成される SOAP トラフィックを監視し、このトラフィックが WS-I に準拠しているかどうかをテストできます。あるいは、TCP/IP モニターを使用した Web サービスのテストで説明するとおり、TCP/IP モニターを手動でセットアップすることもできます。
- 「WebSphere JAX-WS トップダウン Web サービス構成」ページ:
- 出力フォルダー: Java スケルトンの生成先を入力するか、デフォルトを受け入れます。
- ターゲット・パッケージ: 生成される Java のパッケージ名を入力するか、デフォルトを受け入れます。
- ラッパー・スタイルを有効にする: WSDL から Java へのラッパー・スタイル・マッピングを有効にします。document/literal ラップ・パターンを実装する WSDL ドキュメントの場合は、XML スキーマ内にルート要素が宣言され、メッセージ・フローのオペレーション・ラッパーとして使用されます。要求と応答のそれぞれについて別個のラッパー要素定義が存在します。オペレーションと同じ名前を持つ要素 (ラ
ッパー要素) は、そのコンテンツ要素の各々が生成済み Java メソッド・シグニチャーのパラメー
ターになるように分離されます。
- 順序付け可能な JAXB クラスの生成: WebSphere Application Server および WebSphere(r) Application Server Liberty Profile V8.5.5 で、Java 6 ファセットを使用可能にすると、java.io.Serializable を実装する JAXB クラスの生成を選択できます。このインターフェースを実装しないクラスは、状態がシリアライズもデシリアライズもされません。
- MTOM サポートを有効にする: このチェック・ボックスを選択すると、SOAP Message Transmission Optimization Mechanism が有効になり、バイナリー・コンテンツの伝送が最適化されます。MTOM について詳しくは、MTOM 概要を参照してください。
- 生成する JAX-WS コードのバージョン: WebSphere Application Server V7.0 は、JAX-WS 2.0 または 2.1 に準拠したコードをサポートします。WebSphere Application
Server V8.0、V8.5、および WebSphere(r) Application Server Liberty Profile V8.5.5 は、JAX-WS 2.0、2.1、または 2.2 に準拠したコードをサポートします。
- WSDL をプロジェクトへコピー: WSDL フ
ァイルをサービス・プロジェクトにコピーする場合に
選択します。選択しないと、必須の WSDL は、必要
な場合に、ランタイムによって動的に生成されます。このオプションは、クライアントを後で作成する場合や WSDL を他のユーザーのために公開する場合に便利です。
- 順序付け可能な JAXB クラスの生成: WebSphere Application Server および WebSphere(r) Application Server Liberty Profile V8.5.5 で、Java 6 ファセットを使用可能にすると、java.io.Serializable を実装する JAXB クラスの生成を選択できます。このインターフェースを実装しないクラスは、状態がシリアライズもデシリアライズもされません。
- JAX-WS または JAXB バインディング・ファイルの指定: JAX-WS または JAXB カスタム・バインディング・ファイルを作成した場合は、それらのファイルを使用してこの Web サービスを作成するために、このチェック・ボックスを選択します。このチェック・ボックスを選択すると、ウィザードの次のページでカスタム・バインディング宣言ファイルの場所を参照できるようになります。
- サービス実装クラス名のカスタマイズ: デフォルトのポート名をサービス実装クラス名マッピングに変更する場合、このチェック・ボックスを選択します。
- スキーマ・ライブラリーの生成: スキーマ・コードを
スキーマ・ライブラリーに生成することができます。スキーマ・ライブラリ
ーを選択すると、後のページで、XSD 文書または
XSD 文書のグループからのプロジェクトへのマッピングをカ
スタマイズできます。
- Web サービス・デプロイメント記述子の生成: JAX-WS Web サービスの
デプロイメント情報はランタイムによって動的に生成され、
静的デプロイメント記述子は不要になります。このチェック・ボックスを選択するとそれらが生成されます。
- ベンダー拡張機能を許可: このチェック・ボックスを選択すると、wsgen または wsimport コマンドに -extension オプションが追加されます。
-extension オプションは、JAX-WS 仕様で指定されていない機能のカスタム拡張を使用可能にするかどうか、または受け入れるかどうかを指定します。拡張を使用すると、アプリケーションが移植可能でなくなったり、アプリケーションを他の実装と相互運用できなくなることがあります。
詳しくは、WebSphere Application Server のインフォメーション・センターにある JAX-WS アプリケーション用の wsgen コマンドおよび JAX-WS アプリケーション用の wsimport コマンドのトピックを参照してください。
- 前のページで選択したオプションによ
っては、以下のページで Web サービス実装をカスタ
マイズするようにプロンプトが出される場合がありま
す。
- 「カスタム・バインディング宣言」ページ: JAX-WS または JAXB バインディング・ファイルを指定するために選択した場合は、このページで、それらのファイルの場所を参照することができます。
- 「サービス実装構成」ページ: WSDL ファイルで定義されている各ポートについて、サービス実装クラスの名前を入力するか、または、デフォルトを受け入れることができます。
- 「スキーマ・プロジェクトの構成」ページ: スキーマ・ライブラリーを生
成することを選択した場合、このページを使用して
XSD 文書とプロジェクト間のマッピングをカスタ
マイズします。 このフィーチャーは、すべてのスキーマ従属関係が異なる targetNamespaces にある場合に有効です。
そうでない場合、ObjectFactory.java でコンパイル・エラーが発生します。
- 「Web サービスのテスト」ページ: Web サービスのテストを選択した場合、生成した Web サービスに関するテスト機能を選択し、「起動」をクリックします。これにより、Web サービスが、Web サービス・エクスプローラーまたは汎用サービス・クライアントで開きます。テストするオペレーションを選択し、必要な情報を入力して「実行」をクリックします。
「状況」ペインに結果が表示されます。「次へ」をクリックします。
- 「WebSphere JAX-WS Web サービス・クライアント構成」ページ: クライアントの生成を選択した場合、このページで以下の関連オプションを指定することができます。
- 出力フォルダー: クライアント・コードの生成先となる場所です。
- ターゲット・パッケージ: Web サービス・クライアント・ウィザードでは、いくつもの Java ファイルが生成されます。デフォルトでは、WSDL ファイルで指定されている名前空間に基づいてパッケージ名が作成されます。このデフォルトの振る舞いをオーバーライドするために、独自のパッケージ名を指定することができます。
- ポータブル・クライアントの生成: このチェック・ボックスを選択すると、異なるマシン間、あるいは WebSphere Application Server または WebSphere Application Server Liberty Profile V8.5.5 の異なるインスタンス間で Web サービス・クライアント・コードを移動できるようになります。このオプ
ションを選択した場合、
WSDL 文書と、この WSDL
文書が依存する、すべての XML スキーマおよび他の WSDL 文書は、WEB-INF/wsdl 下のク
ライアント・プロジェクトにコピーされ、
このコピーを指す file:relativeURL
は、JAX-WS サービス・クラスの静的初期化ブロック
に注入されます。
- 生成されたクライアントの非同期呼び出しを使用可能にする: 非同期クライアントを使用可能にすることを選択した場合は、Web サービスのメソッドごとに 2 つのメソッドが追加で作成されます。これらはポーリング・メソッドとコールバック・メソッドであり、クライアントが非同期で機能できるようにします。
- JAX-WS または JAXB バインディング・ファイルを指定する: JAX-WS または JAXB カスタム・バインディング・ファイルを作成してある場合は、このチェック・ボックスを選択すると、それらのファイルを使用して Web サービス・クライアントを作成できるようになります。このチェック・ボックスを選択すると、ウィザードの次のページでカスタム・バインディング宣言ファイルの場所を参照できるようになります。
- クライアント・プロキシー・クラス名をカスタマイズする: デフォルトのポート名をサービス実装クラス名マッピングに変更する場合、このチェック・ボックスを選択します。
- 「カスタム・バインディング宣言」ページ: JAX-WS または JAXB バインディング・ファイルを指定するために選択した場合は、このページで、それらのファイルの場所を参照することができます。
- 「サービス実装構成」ページ:
「プロキシー生成の構成」
ページ: 定義されている各ポートについて、プロキシー・クラスの名前を入力するか、または、デフォルトを受け入れることができます。
- Web サービス・クライアント・テスト・ページ:
- 生成されたプロキシーをテストする: これを選択すると、Web ブラウザーでサンプル・クライアントが開始し、機能をテストできるようになります。
- テスト機能を選択します。生成されたプロキシーを汎用サービス・クライアントまたは Web サービス・エクスプローラーで
テストするか、またはサンプル JAX-WS 2.0 JSP を生成して使用することができます。
- フォルダー: JSP を使用してプロキシーをテストすることを選択した場合、JSP を配置するフォルダーを選択し、JSP に組み込むメソッドを選択できます。
- メソッド: 公開するメソッドを選択します。非同期呼び出しを使用可能にすることを選択した場合、非同期メソッドもリストされます。
- サーバーでテストを実行: サーバーが自動的に始動します。
タスクの結果
Web サービスの作成後、選択したオプションによっては、以下が発生する場合があります。
- 実装 Bean が
Java
エディターで開きます。実装 Bean には、Web サービスの基本機能のテストに使用できるスケルトン・コードが含まれています。あるいは、Web サービスに必要なビジネス・ロジックを実装してから、そのテストを行うこともできます。
- 生成したプロキシーを JAX-WS 2.0 JSP を使用してテストすることを選択した場合、そのプロキシーは Web ブラウザーで URL http://localhost: port/WebProjectClient/sampleBeanName/WebServiceName/TestClient.jsp で開始されます。
このサンプル・アプリケーションを使用すると、メソッドを選択し、
そのメソッドの値を入力して「起動」をクリックすることにより、Web サービスをテストできます。
メソッドの結果は、結果ペインに表示されます。これは、簡単なメソッド実装を備えた Java Bean スケルトンであるため、
値 -3 が戻されます。
- 生成したプロキシーを Universal Test Client を使用してテストすることを選択した場合、
そのプロキシーはブラウザーで http://localhost:port/UTC/preload?object=BeanPackage.BeanServiceProxy に似た URL で開始されます。
「オブジェクト」の下のプロキシー・スタブを展開し、Web サービスのメソッドを表示します。テストするメソッドをクリックし、「パラメーター」ペインに値を入力して
「Invoke」をクリックします。
結果が生成され、表示されます。
- Web サービス・エクスプローラーを使用して Web サービスをテストすることを選択した場合は、エクスプローラーが開きます。テストするオペレーションを選択し、必要な情報を入力して「実行」をクリックします。
結果が「状況」ペインに表示されます。