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 サービス (Bottom up DADX Web service)」を選択する。次の操作を実行するオプションもあります。
- スライダーを使用して完了させたい Web サービス開発のステージを選択します。
- 開発: Web サービスの WSDL 定義および実装を開発します。
これには、生成されたコード、WSDL ファイル、デプロイメント記述子、および Java™ ファイル (該当する場合) が入るモジュールの作成などのタスクが含まれます。
- アセンブル: これにより、Web サービスまたはクライアントをホストするプロジェクトが、ターゲット・アプリケーション・サーバーによって要求されたときに EAR に関連付けられるようになります。
- デプロイ: これにより、サービスのデプロイメント・コードが作成されるようになります。
- インストール: これにより、Web モジュールと EAR がターゲット・サーバーにインストールされ、構成されます。
WSDL ファイルのエンドポイントに対する変更が必要な場合、このステージで変更が行われます。
- 始動: これにより、サービスがサーバーにインストールされると、サーバーが始動するようになります。
- テスト: これにより、Web Service Explorer またはサンプル JSP の使用などの、サービスをテストするためのさまざまなオプションが提供されます。
- サーバーの選択: デフォルト・サーバーが表示されます。
サービスを別のサーバーにデプロイしたい場合には、リンクをクリックして別のサーバーを指定してください。
- ランタイムの選択: デフォルトの DADX ランタイムが表示されます。
サービスを別の DADX ランタイムにデプロイしたい場合には、リンクをクリックして別のランタイムを指定してください。 バージョン 8.2 の WORF では、DADX
ツールがサポートするのは Apache Axis 1.1 ランタイムのみとなります。バージョン v9.1 の WORF では、
Apache Axis 1.1 および IBM WebSphere JAX-RPC ランタイムがサポートされます。
- サービス・プロジェクトの選択: ワークスペースで選択されたプロジェクトが表示されます。
別のプロジェクトと EAR を選択するためには、プロジェクト・リンクをクリックしてください。 クライアント Web プロジェクトとして選択したプロジェクトが、サービス Web プロジェクトとは異なること、またはクライアントが生成した成果物によってサービスが上書きされるようになっていることを確認します。
- クライアントを作成したい場合には、生成したいプロキシーのタイプを選択し、クライアントについて上記のステップを繰り返します。
- Web サービスの公開: Web サービス・エクスプローラーを起動して、Web サービスを UDDI レジストリーに公開します。
- Web サービスのモニター: Web サービス・トラフィックを TCP/IP モニターを介して送信します。これにより、Web サービスによって生成される SOAP トラフィックを監視し、このトラフィックが WS-I に準拠しているかどうかをテストできます。
あるいは、『TCP/IP モニターを使用した Web サービスのテスト (Using the TCP/IP Monitor to test Web services)』で説明されているように、TCP/IP モニターを手動でセットアップすることができます。
- Web サービスの DADX グループのプロパティー・ページで DADX グループの情報を入力する。 この情報は、DADX グループ構成の作成で実行した DADX グループ構成から動的に引き出されます。ただしこのパネルでその情報を上書きまたは変更できます。
- 「サーバーの始動」ページ: サーバーが開始されていない場合は、開始してから手順を続ける必要があります。
- 「Web サービス・バインディング・プロキシー生成」ページ: プロキシーの生成を選択した場合、
バインディングとプロキシーのオプションを選択する。
- 「Web サービス・クライアントのテスト (Web Service Client Test)」ページ: このページを使用して、次のオプションを選択します。
- テスト機能を選択します。
生成したプロキシーを Universal Test Client または Web サービス・エクスプローラーでテストするか、
またはサンプル Web サービス JSP を生成することができます。
- JSP を使用してプロキシーをテストする方法を選択した場合、JSP を配置するフォルダーを選択し、JSP に組み込むメソッドを選択できます。
- 「サーバーでテストを実行」を選択して、サーバーが自動的に開始されるようにします。
- 「Web サービスの公開」ページ: この Web サービスを UDDI レジストリーに公開するかどうかを選択します。
「終了」をクリックします。
- Web サービスを作成すると、選択したオプションに応じて、次の状態になります。
- 生成したプロキシーを 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 サービスのメソッドを表示します。 テストするメソッドをクリックし、「パラメーター」ペインに値を入力して「Invoke」をクリックします。下に結果が生成されます。
- Web サービス・エクスプローラーの使用による Web サービスのテストを選択すると、エクスプローラーが開きます。
テストするオペレーションを選択し、必要な情報を入力して「Go」をクリックします。「状況」ペインに結果が表示されます。
- Web サービスの公開を選択した場合、Web サービス・エクスプローラーが起動し、IBM® UDDI テスト・レジストリーに Web サービスを公開するために必要なページが表示されます。「Web サービスの公開 (Publishing the Web service)」の指示に従って、
このタスクを完了します。
Web サービスを作成する際に、選択したオプションに応じて、以下のファイルおよびファイルおよびフォルダーが作成、コピー、または移動されます。
- plugins/com.ibm.etools.webservice.dadxtools_7.0.0/worfRuntime/worf_v82/runtime/worf/* および plugins/com.ibm.etools.webservice.dadxtools_7.0.0/worfRuntime/worf_v91/runtime/worf/*
ファイルは、プロジェクトが設定された WORF のバージョンに応じて
Web_Project/WebContent/worf ディレクトリーにコピーされます。
- lib ディレクトリーが Web_Project/WebContent/WEB-INF
ディレクトリー以下に作成されます。
該当するバージョンの worf.jar および worf-servlets.jar
ファイルがこのディレクトリーにコピーされます。Apache Axis の場合は、必要な Jar
ファイルもこのディレクトリーにコピーされます。
- テスト・ページの .jsp、.html、および .gif
ファイルが Web_Project/WebContent/worf ディレクトリーに作成されます。
- Web_Project/WebContent/WEB-INF ディレクトリーの
web.xml ファイルが、DADX Web
アプリケーションのサーブレット定義により更新されます。Web
プロジェクトにグループが追加された際に、Web アプリケーションのルート・コンテキスト・レベルで、
2 つの追加サーブレットが定義されています。1 つは LIST 関数用、もう 1 つは inspection.wsil リスト関数用です。
- Apache Axis ランタイム環境を使用する場合、server-config.wsdd ファイルが
Web_Project/WebContent/WEB-INF ディレクトリーに作成されます。
- IBM WebSphere ランタイム環境を使用する場合は、以下のファイルが作成または更新されます。
- webservices.xml
- group___dadx.dadx.wsdl
- group___dadx.dadx.xml
- ___filename.xsd
- Web_Project/WebContent ディレクトリー中、DADX
ファイル dadx.wsdl の WSDL ファイルが
wsdl ディレクトリーに作成されます。
- db2WebRowSet.xsd ファイルも Web_Project/WebContent
ディレクトリーに作成されます。
複数のファイル名が同じロケーションにあっても、これらは DADX Web Service Provider の各バージョンごとに異なることに注意してください。これらのファイルをロケーション間で手動でコピーしてはいけません。また、生成されたファイルが、公開領域からワークスペースにコピーされます。Web
サービス・ウィザードの外部のオペレーションから生成されたファイルの場合
(例、ブラウザーからなど)、これらはワークスペースにはコピーされず、後で別の DADX
Web サービスを作成しない場合は、失われてしまいます。
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 サーバーと同じフィックスパック・レベルにしてください。