JAX-RPC Web サービスのサービス・データ・オブジェクト (SDO) ファサードの生成

JAX-RPC 1.1 (JSR-101) では、WSDL およびスキーマから Java™ (J2EE 1.4) への標準のマッピングが定義されています。スキーマのマッピングでは、 選択、置換グループ、単純タイプの制約、およびワイルドカードなど、スキーマのいくつかの共通機能がサポートされていません。 JAX-RPC 1.1 では、非サポートのスキーマ・タイプから Java SOAPElement タイプへのマッピングが要求されています。これは、WSDL ファイルを作成するスキーマに応じて、 Java サービス・エンドポイント・インターフェースのプログラミング・モデルが作成される場合があります。この場合、SOAPElement を処理する広範囲のプログラミング作業が必要になります。

このタスクについて

ウィザードがデフォルトで使用する JAX-RPC スキーマから Java へのマッピングを使用不可にするオプションを使用できます。代わりに XML スキーマの Java Eclipse EMF 2.2 SDO 表現を使用します。 これは、JAX-RPC マッピングが正常に処理しないコンテンツが XML スキーマに 含まれている場合に役に立つことがあります。SDO ファサードの生成は、WebSphere® Application Server v6.0 以降に対してデプロイされたトップダウンの Web サービスおよび Web サービス・クライアントについてのみサポートされます。

トップダウン Web サービスまたは Web サービス・クライアントを作成する場合に SDO ファサードを作成する場合、最も簡単な方法は、設定で SDO ファサードの生成を有効にして、Web サービス・ウィザードを使用して SDO ファサードを生成する方法です。「データ・バインディングを使用不可にして SOAPElement を使用」オプションを選択して、WebSphere JAX-RPC ランタイムを使用する Web サービスまたはクライアントを既に作成済みの場合は、サービスまたはクライアントを作成した後で SDO を生成することができます。この方法では、EMF 2.2 Jar ファイルを EAR プロジェクトにコピーしないようにする追加のオプションを使用できます (コピーが必要になるのは、Web サービスを WebSphereApplication Server v6.0 で実行する場合のみ)。また、スキーマで検出された各名前空間のパッケージ名を変更するオプションも使用できます。

Web サービス・ウィザードを使用した SDO ファサードの生成

このタスクについて

トップダウンの Web サービスまたは Web サービス・クライアントを作成する場合に、Web サービス・ウィザードで SDO を生成するには、ウィザードを実行する前に、「データ・バインディングを使用不可にして SOAPElement を使用」および「Java クラスから SDO ファサードを生成する」の設定を有効にします。

手順

  1. 「ウィンドウ」>「設定」の順にクリックして、「設定」ウィンドウを開きます。
  2. 「Web サービス」 > 「WebSphere」 > 「JAX-RPC コード生成」を展開します。
  3. 「WSDL2Java」タブで、「データ・バインディングを使用不可にして SOAPElement を使用」および「Java クラスから SDO ファサードを生成する」を選択します。「OK」をクリックします。 すべてのタイプが SOAPElement にマッピングされていないと、SDO ファサードを生成することはできません。
  4. 必要に応じて、Web サービスまたは Web サービス・クライアント・ウィザードを実行します。 ウィザードの最初のページでは、スライダーを「デプロイ」の位置まで移動する必要があります。これは、SDO ファサードの生成は、デプロイメント・コードが存在する場合にのみ可能なためです。

手動での SDO ファサードの生成

始める前に

SDO ファサードを手動で生成する前に、設定で 「データ・バインディングを使用不可にして SOAPElement を使用」オプションを選択して Web サービスが作成されている必要があります。SDO の生成は、WebSphere Application Server v6.0 以降に対してデプロイされたトップダウンの Web サービスおよびクライアントについて行うことができます。これには、以前のバージョンの Web サービス・ツールで作成された Web サービスおよびクライアントも含まれます。

手順

  1. Java bean skeleton or Web service proxy Java Bean を選択し、右クリックして「Web サービス」 > Java からの SDO の生成」を選択します。
  2. スケルトン・ファサードまたはプロキシー・ファサードを生成する場所を選択します。
  3. オプションとして、EMF 2.2 Jar ファイルを EAR プロジェクトにコピーするよう選択が可能です。 WebSphere Application Server v6.0 ランタイムで Web サービスまたはクライアントを作成した場合は、このバージョンのランタイムでは旧バージョンの EMF を使用しているため、これらの Jar ファイルを EAR プロジェクトにコピーする必要があります。Web サービスまたはクライアントの作成に WebSphere Application Server v6.1.0.3 ランタイム以前を使用した場合、 これらのファイルをコピーする必要があります。
  4. 「名前空間データのルックアップ」オプションを使用して、各名前空間のパッケージ名を変更します。 ツールでは、スキーマのコンテンツに応じて名前が生成されますが、これと異なる名前を使用する場合は、スキーマで検出されたそれぞれの名前空間のパッケージ名を変更することができます。

次のタスク

重要: 生成された SDO コードが必要とする EMF のレベルと WebSphere Application Server 内の EMF のレベルが競合します。 この問題を解決するには、次のようにします。
  1. EAR プロジェクトの仕様レベルが 1.2、1.3 または 1.4 の場合、 Web サービス・アプリケーションのデプロイメント記述子を開いて「デプロイメント」タブを選択します。
  2. EAR プロジェクトの仕様レベルが 1.5 の場合、EAR を右クリックして、「WebSphere Application Server Deployment を開く」をクリックします。
  3. 「アプリケーション」ボックス内で「クラス・ローダー・モード」フィールドを「parent_last」に設定します。これにより、クラス・ローダーは、親へのクラス・ロードの代行を行う前に、ローカル・クラスパスからのクラスのロードを試行します。

EMF SDO による Web サービスの開発の詳細な例は、Developing Web Services with EMF SDOs for complex XML schema を参照してください。


フィードバック