DADX グループおよび DADX ファイルを作成したら、「Web サービス」ウィザードを使用して
Web サービスを作成およびデプロイします。
Web サービスを作成およびデプロイした後では、このウィザードに従うと、
クライアント・プロキシーまたはサンプル・アプリケーションを生成して、新規 Web サービスをテストできます。
テストが完了したら、
Web サービスを UDDI Business Registry に発行できます。
前提条件:
- DADX グループと構成の作成およびDADX ファイルの生成で説明するように、DADX グループと DADX ファイルを作成しておく必要があります。
- WebSphere® サーバーを使用する場合は、JDBC ドライバーのための JAR ファイルのロケーションを Web アプリケーション管理コンソールで設定する必要があります。
- 「サーバー」ビューで、サーバーを右クリックして、「管理コンソールの実行 (Run Administrative Console)」を選択する。
- 管理コンソールから「リソース」 > 「JDBC プロバイダー (JDBC Providers)」を選択する。
DB2® Universal JDBC Driver Provider のための新規 DB2 Universal
JDBC プロバイダーを追加します。JDBC ドライバーの実装クラスを group.properties ファイルに指定される JDBC クラスに設定します。
group.properties ファイル内のデフォルトは com.ibm.db2.jcc.DB2Driver です。
- 管理コンソールから「環境 (Environment)」 -> 「WebSphere 変数 (WebSphere Variables)」を選択する。
DB2UNIVERSAL_JDBC_DRIVER_PATH と DB2_JDBC_DRIVER_PATH のパスを <sqllib>/java に設定します。ここで <sqllib> は DB2 のインストール・ロケーションです。
Web サービスを作成するには、次の手順を実行します。
- ユーザーの DADX ファイルを選択する。
- 「ファイル」 > 「新規」 > 「その他」の順にクリックする。
各種の Web サービス・ウィザードを表示するために、「Web サービス」を選択する。
「Web サービス」ウィザードを選択する。「次へ」をクリックする。
- 「Web サービス」ページで、「Web サービス・タイプ」ドロップダウン・リストから、
「DADX Web サービス」を選択する。次の操作を実行するオプションもあります。
- Web プロジェクトで Web サービスを開始する。このオプションを選択しない場合は、
Web サービスを手動で開始する必要があります。
このオプションを選択しないと、このページの他のオプションは使用可能になりません。
- Web サービス・エクスプローラーを起動して、Web サービスを UDDI レジストリーに公開する。
- Web サービスに Java™ Bean クライアント・プロキシーを生成する。生成される Java Bean
クライアント・プロキシーは、Web サービスへのリモート・プロシージャー・コール・インターフェースを提供します。
- Web サービスをテストする。これにより、プロキシーの生成前に Web サービス・エクスプローラーで Web サービスをテストできます。
- Web サービス・トラフィックを TCP/IP モニターを通して送信する。
これにより、Web サービスによって生成される SOAP トラフィックを監視し、
このトラフィックが WS-I 準拠かどうかをテストできます。
- 「オブジェクト選択」ページ: Web サービスの作成元の DADX ファイルを参照する。
- 「サービス・デプロイメント構成 (Service Deployment Configuration)」ページ: サーバーとクライアントのデプロイメント設定を指定する。
- 「編集」をクリックし、
適切なランタイム環境を選択し、Web サービスおよび Web サービス・クライアント
を実行するサーバーを選択する。
- 作成する Web サービスに含めるデフォルトの Web プロジェクトおよび EAR を受け入れる。
選択されたプロジェクトには DADX ファイルを持つ DADX グループが含まれていることを確認してください。 これらがまだ存在しない場合には、ウィザードで作成します。
注: デフォルトのプロジェクト名を受け入れる必要があります。そうでないと、ウィザードを先に進めることができなくなる場合があります。
- 作成済みの Web サービスにプロジェクトのタイプと名前を受け入れる。 注: デフォルトのプロジェクト名を受け入れる必要があります。そうでないと、ウィザードを先に進めることができなくなる場合があります。
- 既存の EAR を選択するか、Web サービス・クライアント
と、Web サービス EAR 以外の別の EAR とを関連付ける固有の名前を入力する。
注: Web サービスと Web サービス・クライアントについて異なる EAR を
選択すると、実行時エラーの発生頻度は減りますが、
より多くのシステム・リソースを使用します。
- DADX グループのプロパティー・ページで DADX グループの情報を入力する。 この情報は、DADX グループ構成の作成で実行した DADX グループ構成から動的に引き出されます。ただしこのパネルでその情報を上書きまたは変更できます。
- 「Web サービス・バインディング・プロキシー生成」パネル: プロキシーの生成を選択した場合、
バインディングとプロキシーのオプションを選択する。
- 「Web サービス・クライアントのテスト (Web Service Client Test)」ページ: このページを使用して、次のオプションを選択する。
- テスト機能を選択する。
生成したプロキシーを Universal Test Client または Web サービス・エクスプローラーでテストするか、
またはサンプル Web サービス JSP を生成することができます。
- JSP を使用してプロキシーをテストする方法を選択した場合、JSP を配置するフォルダーを選択し、JSP に組み込むメソッドを選択できます。
- 「サーバーでテストを実行」を選択して、サーバーが自動的に開始されるようにする。
- 「Web サービスの公開」ページ: この Web サービスを UDDI レジストリーに公開するかどうかを選択する。
「完了」をクリックします。
- Web サービスを作成すると、選択したオプションに応じて、次の状態になります。
- 以下のファイルが作成またはコピーされます。
- 選択済みグループ内のファイルおよび DADX ファイルは <Web
Project>/WebContent/WEB-INF/classes/groups ディレクトリーにコピーされます。
- plugins/com.ibm.etools.webservice.dadx_6.0.1/worfRuntime/worf_v81/runtime/* および plugins/com.ibm.etools.webservice.dadx_6.0.1/worfRuntime/worf_v82/runtime/* ファイルは、プロジェクトが設定される DB2 Web サービス・プロバイダーのバージョンに従って <Web Project>/WebContent/lib ディレクトリーにコピーされます。
- <Web Project>/WebContent/worf ディレクトリーが、テスト・ページ用に、.jsp、html、および .gif ファイルと共に作成されます。
- 以下のファイルは <Web Project>/WebContent/WEB-INF
ディレクトリーで作成されます。
- IBM® SOAP の場合、
各 DADX に対するデプロイメント記述子 <dadx>.isd ファイル、および DADX ファイルが
デプロイされる際に dds.xml ファイル。
- Apache Axis の場合、DADX ファイルがデプロイされる際に、各 DADX ファイルに対する <dadx>.wsdd ファイル。
- DADX Web アプリケーション用のサーブレット定義を含む web.xml ファイル。 DADX Web Service Provider v8.2 の場合、Web アプリケーションのルート・コンテキスト・レベルで、2 つの追加サーブレットが定義されます。1 つは LIST 関数用、もう 1 つは inspection.wsil リスト関数用です。 Apache SOAP の場合、<soap-engine> パラメーターは設定されません (デフォルト)。
Apache Axis の場合、<soap-engine> パラメーターは apache-axis に設定されます。
複数のファイル名が同じロケーションにあっても、これらは DADX Web Service Provider の各バージョンごとに異なることに注意してください。これらのファイルをロケーション間で手動でコピーしてはいけません。
- 生成したプロキシーを Web サービス JSP を使用してテストすることを選択した場合、
プロキシーが http://localhost: port/WebProjectClient/sampleBeanName/WebService/TestClient.jsp
という URL を使用して Web ブラウザーに起動されます。
このサンプル・アプリケーションを使用すると、メソッドを選択し、
そのメソッドに値を入力して「呼び出し」をクリックすることにより、Web サービスをテストできます。
メソッドの結果は、結果ペインに表示されます。
- 生成したプロキシーを Universal Test Client によってテストする方法を選択した場合、
次の URL を指定すると、プロキシーがブラウザー・ウィンドウで起動されます:
http://localhost:9080/UTC/preload?object=proxy.soap.ProxyNameProxy。
オブジェクト参照の下の「参照」ペインで、このプロキシーを展開して Web サービスのメソッドを表示します。
テストするメソッドをクリックし、パラメーター・ペインに値を入力して「呼び出し」をクリックします。下に結果が生成されます。
- Web サービス・エクスプローラーの使用による Web サービスのテストを選択すると、エクスプローラーが開きます。
テストするオペレーションを選択し、必要な情報を入力して「実行」をクリックします。
「状況」ペインに結果が表示されます。
- Web サービスの公開を選択した場合、Web サービス・エクスプローラーが起動し、IBM UDDI
テスト・レジストリーに Web サービスを公開するために必要なページが表示されます。「Web サービスの発行 (Publishing the Web service)」の指示に従って、このタスクを完了します。
DADX をリモート・サーバー上で実行する場合は、worf.jar を、plugins/com.ibm.etools.webservice.dadxtools/worfRuntim/version/runtime フォルダーからリモート・マシン上のどこかに手動でコピーする必要があります。
その後、この worf.jar ファイルを参照するようにリモート・サーバーのクラスパスを更新する必要があります。
重要:
- DADX Web サービスは、生成されたサンプル・アプリケーションで処理できない複合型を戻すことがよくあります。
DOM エレメントを戻すメソッドをテストするには、プロキシーの Java Bean メソッドではなく、
プロキシーの DOM エレメント・メソッドを呼び出してください。
- RPC スタイルのメッセージに対しては、WebSphere 5.1 または Apache Axis クライアントの生成に使用されている
WSDL ファイルで SOAP エンコード方式とリテラル・エンコード方式を併用することはできません。
したがって、RPC を使用する DADX Web サービス用に生成された WSDL ファイル
から、WebSphere v51
または Apache Axis クライアントを正しく作成することはできません。
この問題を回避するには、文書スタイルを使用して DADX Web サービスを作成します。
v5.1 の WebSphere ランタイムは、
この WSDL からクライアントを問題なく作成できます。
文書スタイルの DADX Web サービスを使用するには、DADX グループに対する
group.properties ファイルの useDocumentStyle パラメーターを、
true に設定します。この設定は、DADX グループの構成ウィザードを使用して行うこともできます。
-
Microsoft® Web
サービスとのインターオペラビリティーを向上させるため、
DADX ランタイムは直ちに文書スタイルの Web サービスを生成することができます。
このフィーチャーを使用可能にするには、DADX 構成ウィザードを使用して、
使用する DADX グループのプロパティー・ページを開きます。
プロパティー・ページの下端にある「文書スタイルを使用する」入力フィールドを「true」に設定してください。
- DADX スキーマでは、文書で WSDL の document タグを使用しなくなりました。
このタグは、DADX スキーマの一部となりました。
更新されたスキーマを使用して古い DADX ファイルがマイグレーションされていない場合は、検証で問題が発生する可能性があります。
例えば、古い DADX ファイルに次の XML が含まれているとします。
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
myco.com で部品オーダー情報の照会を提供する。
</wsdl:documentation>
新しい文書項目は次のようになります。
<documentation>
myco.com で部品オーダー情報の照会を提供する。
</documentation>
- サンプルでサポートされない型 (配列、インデックス・プロパティー、
コレクションなど) がメソッドに含まれている場合は、
メソッドはサンプル・アプリケーションから除外され、警告メッセージが出されます。
- ストアード・プロシージャーを使用して DADX Web サービスを作成するときは、
ストアード・プロシージャー・パラメーターに下線を含めることはできません。
例えば、Java ストアード・プロシージャーは次のようになります。
public static void test ( String class_code,
short day,
java.sql.Time starting,
java.sql.Time ending ) throws SQLException, Exception
この場合は、class_code パラメーターがあるため、DADX ランタイムは正常に実行されません。
この問題を避けるためには、下線を含まないパラメーター名を使用してください。
- Web サービスに変換するように選択した DADX ファイルが
WebProject¥JavaSource¥groups¥DADXgroup
ディレクトリーに含まれていることを確認してください。
相対 DAD ファイルも、このフォルダーにある必要があります。 これは、実行時に、
これらのファイルが置かれていると予測される場所です。 これが正しくない場合は、
データベースまたはサーバーのエラーを検出する可能性があります。
- DADX ファイル・ウィザードを使用して、DADX ファイルを DADXGroup フォルダーに作成できます。
DADX ファイルの作成について詳しくは、XML ツールを参照してください。
- 通常は、Web サービス内の複数出力はサポートされません。
ただし、DADX Web サービスでは、
「文書スタイル・グループの使用」 プロパティーが真に設定されている場合、
複数の出力はサポートされます。
この場合、複数の出力は 1 つの XML 文書に結合されます。
- DADX グループでは、
JDBC Net ドライバーを指定できます。
DB2 の場合、
Net ドライバー・クラスは COM.ibm.db2.jdbc.net.DB2Driver です。
DB2 の以前のバージョンでは、
db2java.zip ファイルにドライバーが含まれており、
この Zip ファイルをサーバーのクラスパスに追加する必要がありました。
一方、DB2 バージョン 8.1 以降では、
db2jcc.jar ファイルもサーバーのクラスパスに追加する必要があります。
このファイルは通常、db2java.zip ファイルと同じディレクトリーに配置されます。
必ず、ご使用のマシンの DB2 クライアント・レベルを、
接続先の DB2 サーバーと同じフィックスパック・レベルにしてください。