IBM SOAP ランタイム環境を使用した DADX ファイルから Web サービスの作成

Document Access Definition Extension (DADX) は XML 文書フォーマットであり、 DAD 文書および SQL ステートメントが定義する、一連の操作によって、Web サービスを作成する方法を指定します。 DADX Web サービスによって、標準の Web サービス内部で、 DB2® Extender または通常の SQL ステートメントをラップすることができます。  DADX ファイルは、DADX ランタイム環境で使用可能な操作、および SQL 操作の入出力パラメーターを定義します。

前提条件:
  1. DB2 Universal Database™, Personal Edition, バージョン 7.2 (フィックスパック 6 以降適用済み) の知識があり、この製品がインストールされている。
  2. DB2 XML Extender が必要な DADX Web サービスの場合は、 DB2 Universal Database™, XML Extender バージョン 7.2 (フィックスパック 6 以降適用済み) の知識があり、 この製品がインストールされている。
  3. サーバーとして Apache Jakarta Tomcat サーブレット・コンテナーを使用している場合には、 それをインストールして、そのインスタンスを構成し、 WebSphere® サーバーおよび Web プロジェクトの作成の記述に従って、 それをターゲットとした Web プロジェクトを作成する必要があります。
  4. WebSphere サーバーを使用している場合には、 WebSphere サーバーおよび Web プロジェクトの作成の記述に従って、 適切なサーバーをターゲットとした動的 Web プロジェクトを作成する。 WebSphere Application Server が立ち上がるまでに、 ご使用のコンピューターの速度にもよりますが、数分かかることがありますので、 このサーバーの開始は、Web サービス・ウィザードを実行させる前に開始することを強くお勧めします。 サーバーを開始するには、「サーバー」ビューでこのサーバーを選択して (「ウィンドウ」 > 「ビューの表示」 > 「サーバー」) 右クリックし、「開始」をクリックする。
Web プロジェクトの作成について詳しくは、Web アプリケーション開発の文書を参照してください。

「Web サービス DADX グループ構成」ウィザードを使用して、データベース接続を構成します。 その後、DADX ファイルを作成します。 XML ツールを使用して、DAD および DADX ファイルが作成できます。 SQL から DADX ファイルを生成する情報について詳しくは、DADX ファイルの生成を参照してください。  任意のテキスト・エディターを使用して、DADX ファイルを書くこともできます。  その後、UDDI レジストリーに向けて Web サービスを公開する準備として、 「Web サービス」ウィザードを使用して WSDL 文書、デプロイメント記述子、クライアント・プロキシー、 プロパティー・マッピング、デプロイメント・マッピングを生成し、DADX Web サービスのテストをしてください。

「Web サービス DADX グループ構成」ウィザードは、DADX グループの作成を支援します。 DADX グループには、グループ内の DADX ファイル間で共有される接続 (JDBC および JNDI) とその他の情報が含まれています。 DADX グループを作成したら、「Web サービス」ウィザードを使用して新規 Web サービスを作成およびデプロイします。 Web サービスをデプロイした後では、このウィザードに従うと、 クライアント・プロキシーおよびサンプル・アプリケーションを生成して、新規 Web サービスをテストすることができます。 テストが完了したら、「エクスポート」ウィザードを使用して、 Web サービスを UDDI Business Registry に公開することができます。

JDBC バージョン 2.0 が DB2 で使用可能にされていることを確認するには、 以下の手順を実行します

  1. すべての DB2 プロセスを停止する。
  2. コマンド・プロンプトで DB2_installdir¥SQLLIB¥java12 にある usejdbc2 バッチ・ファイルを実行する。 ここで、DB2_installdir は DB2 をインストールしたパスです。
  3. DB2 を再始動するために、 システムをリブートする。

DB2 について詳しくは、 www.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v7pubs.d2w/en_main を参照してください。

®:

Web サービス・エクスプローラーの使用による Web サービスの公開について詳しくは、 『Web サービスの公開』を参照してください。

DADX グループの作成

  1. 「ナビゲーター」ビューで、DADX グループを作成する Web プロジェクトを選択する。
  2. 各種の Web サービス・ウィザードを表示するには、 「ファイル」 > 「新規」 > 「その他」 > 「Web サービス」の順にクリックする。
  3. Web サービス DADX グループ構成」ウィザードを選択する。 「次へ」をクリックする。
  4. Web プロジェクトを選択する。「グループの追加」をクリックする。 DADX グループの名前を入力する。「OK」をクリックする。
  5. Web プロジェクトを展開して、該当する DADX グループを表示する。 その DADX グループを右クリックする。 「グループ・プロパティー」を選択する。 DB URL を jdbc:db2: DATABASE_NAME に変更する。 ここで、DATABASE_NAME は、ご使用のデータベースの名前です。 このデータベースにアクセスする権限を持っているユーザーのユーザー ID とパスワードを入力する。 その他の必要なパラメーターを入力する。
    コンテキスト・ファクトリー
    データ・ソースを使用してデータベースに接続すると、 この値は、使用しなければならないコンテキスト・ファクトリー・クラスを指定します。 WebSphere サーバーで実行する際の推奨値は、 com.ibm.websphere.naming.WsnInitialContextFactory です。
    データ・ソース
    データ・ソースを使用してデータベースに接続すると、この値は、使用するデータ・ソース名を指定します。
    DB ドライバー
    JDBC を使用してデータベースに接続すると、 この値は、使用するデータベース・ドライバー・クラスを指定します。
    DB URL
    JDBC を使用してデータベースに接続すると、 この値は使用するデータベースのデータベース URL を指定します。
    ユーザー ID およびパスワード
    これらのフィールドは、データ・ソースまたは JDBC のいずれかで接続するときに、 認証情報を指定する場合に使用されます。
    名前空間テーブル
    このフィールドは、DADX ランタイムで使用する名前空間テーブル・ファイル名を指定します。 このファイルは、DTD ID とその関連 XSD 名前空間および場所との間のマッピングを定義します。 注: このファイルへの入力が必要なのは、DADX ファイルが DAD ファイルを参照する場合だけです。
    自動再ロード
    このフィールドは、サーバー上で変更されたリソース (DADX ファイルなど) を DADX ランタイムで再ロードするかどうかを指定します。
    再ロード間隔
    この値は、DADX ランタイムが変更されたリソースを調べる時間間隔を秒数で指定します。 注: これは、「自動再ロード」が真 (true) に設定された場合にだけ使用されます。
    グループ名前空間 URI
    このフィールドは、 この DADX グループ内の DADX ファイルと関連付けられているすべての名前空間の先頭に置かれる名前空間 URI 接頭部を指定します。 このフィールドがブランクのままになっていると、デフォルトの接頭部である http://tempuri.org が使用されます。
    XML Clob を使用可能にする
    このフィールドは、DB2 XML Extender CLOB フィーチャーを使用するかどうかを指定します。 DB2 XML Extender 7.2 以降を使用するときは、 この値を真 (true) にする必要があります。 これより古いバージョンの場合は偽 (false) にします。
    文書スタイルの使用
    このフィールドは、DADX ランタイムが文書スタイルを使用するか RPC スタイルを使用するかを示します。 値が真 (true) であると、文書スタイルが使用されます。そうでない場合は、RPC スタイルが使用されます。
    OK」をクリックする。
  6. 終了」をクリックする。 DADX グループが次の場所に生成されます。  WebProject¥JavaSource¥groups

DADX からの Web サービスの作成

  1. DADX グループ WebProject¥JavaSource¥groups¥DADXGroup に DADX ファイルを作成するか、またはインポートする。 ここで DADXGroup は、上記ステップで作成したグループです。 重要: 相対 DAD ファイルもこのフォルダーに含める必要があります。  これは、実行時に、 これらのファイルが置かれていると予測される場所です。 これが正しくない場合は、 データベースまたはサーバーのエラーを検出する可能性があります。  DAD または作成する DADX ファイルについて詳しくは、 XML ツールを参照してください。
  2. ユーザーの DADX ファイルを選択する。
  3. ファイル」 > 「新規」 > 「その他」の順にクリックする。 各種の Web サービス・ウィザードを表示するために、「Web サービス」を選択する。 「Web サービス」ウィザードを選択する。「次へ」をクリックする。
  4. 「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 準拠かどうかをテストできます。
  5. 「サービス・デプロイメント構成」ページ: サーバーとクライアントのデプロイメント設定を指定する。
    1. 編集」をクリックし、 IBM® SOAP ランタイム環境を選択して、 Web サービスおよび Web サービス・クライアントを実行するためのサーバーを選択する。
    2. 作成する Web サービスに含めるデフォルトの Web プロジェクトおよび EAR を受け入れる。 選択されたプロジェクトには DADX ファイルを持つ DADX グループが含まれていることを確認してください。 これらがまだ存在しない場合には、ウィザードで作成します。 注: デフォルトのプロジェクト名を受け入れなければなりませんが、 ウィザードを先に進めることができなくなることもあります。
    3. 作成済みの Web サービスにプロジェクトのタイプと名前を受け入れる。 注: デフォルトのプロジェクト名を受け入れなければなりませんが、 ウィザードを先に進めることができなくなることもあります。
    4. 既存の EAR を選択するか、 Web サービス・クライアントを Web サービス EAR 以外の別の EAR に関連付ける固有の名前を入力する。 注: Web サービスと Web サービス・クライアントについて異なる EAR を選択すると、 実行時エラーの発生頻度は減りますが、 より多くのシステム・リソースを使用します。
  6. 「Web サービス DADX ファイル選択」ページ: Web サービスの作成元の DADX ファイルの名前を入力する。
  7. 「Web サービス・バインディング・プロキシー生成」パネル: プロキシーの生成を選択した場合、 バインディングとプロキシーのオプションを選択する。
  8. 「Web サービス・クライアントのテスト」ページ: このページを使用して、次のオプションを選択する。
    • テスト機能を選択する。 生成したプロキシーを Universal Test Client または Web サービス・エクスプローラーでテストするか、 またはサンプル Web サービス JSP を生成することができます。
    • JSP を使用してプロキシーをテストする方法を選択した場合、JSP を配置するフォルダーを選択し、 JSP に組み込むメソッドを選択できます。
    • サーバー上でテストを実行する」を選択して、サーバーが自動的に開始されるようにする。
  9. 「Web サービスの公開」ページ: この Web サービスを UDDI レジストリーに公開するかどうかを選択する。 「終了」をクリックする。 
  10. Web サービスを作成すると、選択したオプションに応じて、次の状態になります。
    • 生成したプロキシーを Web サービス JSP を使用してテストすることを選択した場合、 プロキシーが http://localhost: port/WebProjectClient/sampleBeanName/WebService/TestClient.jsp という URL を使用して Web ブラウザーに起動されます。 このサンプル・アプリケーションを使用すると、メソッドを選択し、 そのメソッドに値を入力して「呼び出し」をクリックすることにより、Web サービスをテストできます。 メソッドの結果は、結果ペインに表示されます。
    • 生成したプロキシーを Universal Test Client によってテストする方法を選択した場合、次の URL を指定すると、 プロキシーが Web ブラウザーで起動されます: http://localhost:9080/UTC/preload?object=proxy.soap.ProxyNameProxy。 オブジェクト参照の下の「参照」ペインで、このプロキシーを展開して Web サービスのメソッドを表示します。 テストするメソッドをクリックし、パラメーター・ペインに値を入力して「呼び出し」をクリックします。 その情報の下に結果が生成されます。
    • Web サービス・エクスプローラーの使用による Web サービスのテストを選択すると、エクスプローラーが開きます。 テストする操作を選択し、必要な情報を入力して「実行」をクリックする。 「状況」ペインに結果が表示されます。
    • Web サービスの公開を選択した場合、Web サービス・エクスプローラーが起動し、 IBM UDDI テスト・レジストリーに Web サービスを公開するために必要なページが表示されます。 「Web サービスの公開」 の指示に従って、このタスクを完了します。
DB2 XML Extender および DADX 仕様について詳しくは、 www.ibm.com/software/data/db2/extenders/xmlext/library.html を参照してください。

DADX をリモート・サーバー上で実行する場合は、 手動で worf.jar を、 plugins/com.ibm.etools.webservice.consumption.soap_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 クライアントを正しく作成することはできません。 この問題を回避するには、DOC スタイルを使用して DADX Web サービスを作成します。 v5.1 の WebSphere ランタイムは、 この WSDL からクライアントを問題なく作成できます。 DOC スタイルの 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 サーバーと同じフィックスパック・レベルにしてください。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005