WSDL2WebService ツールを使用した Web サービスの作成

コマンド行で WSDL2WebService ツールを使用すると、IBM® WebSphere® ランタイム環境を使用して WSDL ファイルから Web サービスを生成できます。

前提条件:

このツールは、次の 3 つのステージに従って使用します。

  1. -createService 引数を指定してこのツールを実行し、 特定の WSDL 文書に記述されている Web サービスのスケルトン Java 実装テンプレートを作成する。
  2. このテンプレートに実装コードを書き込み、ステージ 1 で生成したビルド・スクリプトを使用してコンパイルする。
  3. -createEar 引数を指定して再びこのツールを実行し、この実装から Web サービス対応のアーカイブを作成する。

注: ステージ 1 を複数回実行することにより、 同じプロジェクト・ディレクトリー内に関連の Web サービスを作成できます。 それに応じて、ステージ 3 では、これらの各 Web サービスにそれぞれ別個のモジュールを作成し、 それらのモジュールを同じ EAR ファイルに追加できます。

コマンド行のセットアップ

WSDL2WebService ツールを使用する前に、次の方法で Web サービスのコマンド行をセットアップする必要があります。

  1. コマンド・プロンプトで Rational® Developer 製品の bin ディレクトリーに移動する。  
  2. 次のバッチ・スクリプトを実行する。 
    • Windows®: setupenv.bat
    • Linux: .setupenv.sh
  3. Web サービスを作成するディレクトリーに移動する。 このディレクトリーをコマンド行テスト・ディレクトリーと呼びます。 Linux: このディレクトリーには書き込みアクセスが必要です。

 これで、WSDL2WebService ツールのステージ 1 を実行できます。

スケルトン Web サービス実装の作成

注: WSDL2WebService ツールには 2 つのバージョンがあります。 WSDL2WebService コマンドを実行すると、J2EE 1.4 を使用します。 WSDL2WebService13 コマンドを使用すると、J2EE 1.3 を使用することになります。 J2EE 1.3 を使用する Web サービスを作成する場合は、下のコマンドの WSDL2WebServiceWSDL2WebService13 に置き換えて使用します。

スケルトン Web サービス実装を作成するには、コマンド・プロンプトに次のように入力します。

  • Windows: WSDL2WebService [<optional arguments>] -createService <ServiceName> -project <ProjectDir> <WSDL URI>
  • Linux: WSDL2WebService.sh [<optional arguments>] -createService <ServiceName> -project <ProjectDir> <WSDL URI>

注: 最後の引数として、必ず <WSDL URI> を指定してください。 この引数は大文字小文字が区別されます。 オプションの引数および必須引数のリストについては、『WSDL2WebService ツール』 を参照してください。

ヒント:
  • オプションの引数については、次のオプション指定をお勧めします: -host <hostname:port>。 このコマンドのデフォルト・ポートは 6080 ですが、WebSphere Application Server のデフォルト・ポートは 9080 です。
  • -project で指定したコマンド行テスト・ディレクトリーのパス、およびその名前をメモしておいてください。  この情報は Web サービスをデプロイおよびテストするときに必要です。

-createService <ServiceName> 引数を指定してこのツールを実行すると、 指定したプロジェクトの下に、いくつかのサブディレクトリーを含む <ServiceName> というディレクトリーが作成されます。 これらのサブディレクトリーには、Web サービス実装の作成に必要なすべての Java テンプレートがすべて含まれています。

以下は、WSDL2WebService ツールを使用方法を示す例です。

WSDL2WebService -createService ejb1Service -project dir:¥myproj¥ejbDir -host localhost:9080 -contextRoot ejb1Service -type EJB -verbose dir:¥TempConv.wsdl

実装コードのコンパイル

作成中の Web サービスを正しく実装するには、スケルトン Java ファイルを変更する必要があります。 正しいコードをこの Java スケルトンに追加すると、コンパイルが必要になります。 コンパイルと呼ばれるビルド・スクリプトも、この全コードのコンパイルを支援するために作成されます。

実装コードをコンパイルするには、以下の手順を実行します。

  1. <ServiceName> ディレクトリーに移動する。
  2. 実装コードに、.class ファイルを含む JAR ファイルやディレクトリーなどの依存関係がある場合は、 コンパイル・スクリプトを編集し、これらの依存関係の絶対パスを USER_CLASSPATH 変数に追加する。以下がその例です。 
    • Windows: set USER_CLASSPATH = c:¥MyJars¥webservice.jar;c:¥MyClasses
    • Linux: USER_CLASSPATH = /home/MyJars/webservice.jar:/home/MyClasses
  3. 以下のコマンドを入力する。
    • Windows:  compile
    • Linux:  compile.sh
    コマンドの実行にパラメーターは必要ないことに注意してください。

アーカイブを使用可能にされた Web サービスの作成

サービスを作成して、実装コードを Java スケルトンに追加し、新規コードをコンパイルすると、 アーカイブを使用可能にする Web サービスを作成する必要があります。 アーカイブを使用可能にした Web サービスを作成するには、コマンド・プロンプトで以下を入力してください。

  • Windows: WSDL2WebService [<optional arguments>] -createEar <File.ear> -project <ProjectDir>
  • Linux: WSDL2WebService.sh [<optional arguments>] -createEar <File.ear> -project <ProjectDir>

オプションの引数および必須引数の説明については、 『WSDL2WebService ツール』を参照してください。

ヒント: Web サービスをデプロイおよびテストする場合は、 -project で指定したコマンド行テスト・ディレクトリーのパス、およびその名前をメモしておいてください。

実装コードを作成してコンパイルし、-createEar <File.ear> 引数を指定して再びこのツールを実行すると、 新規または更新された EAR ファイルが出力されます。 このファイルには、-add 引数によって指定した各 Web サービス名に対し、Web サービス・モジュールが 1 つずつ含まれます。 また、Web サービスを実装するサーバー・サイド・クラスが、 通常の場所である WEB-INF¥classes ディレクトリーに移動していることにも気付くはずです。 -server-side-only 引数を指定しない場合は、 追加の Java ファイル (複合型のシリアライザーおよびデシリアライザー・クラスなど) を含むクライアント・サイド・ディレクトリーも作成されます。

EAR ファイルの生成後は、他のユーザーが使用できるようにこのファイルをサーバーにデプロイします。

Web サービス使用可能アーカイブの作成方法を示す例です。
WSDL2WebService -createEAR dir:¥myear¥ejb1ear.ear -project dir:¥myproj¥ejbDir -add ejb1Service -verbose localhost:9080/ejb1Service/services/TempConv

コードの再利用のサポート

WSDL2WebService ツールでは、 JAR または EJB ファイルを EAR ファイルのルートに配置できるようにして、コードの再利用をサポートします。 JAR または EJB ファイルには、中に含まれる 1 つ以上の Web サービスがアクセスします。  サービスと同じ名前の JAR ファイルに、すべてのクラスをアーカイブすることにより、 Web サービス実装情報を再利用することができます。  クラスを JAR ファイルにアーカイブするには、 以下のステップに従って実行してください。

  1. WSDL2WebService ツールの実行後、再利用する JAR ファイルをプロジェクト・ディレクトリーのルートにプットする。 再利用するファイルは、JAR ファイルの場合または EJB ファイルの場合があるので注意してください。
  2. プロジェクト内にあるこれらの JAR ファイルのいずれかを必要とする Web サービスごとに、 JAR ファイルに絶対パスを追加して、そのコンパイル・スクリプトの USER_CLASSPATH 変数を更新する。
  3. 各 Web サービスを通常どおりコンパイルする。
  4. WSDL2WebService ツールを -createEAR 引数を通常通り指定して実行する。 WSDL2WebService ツールは自動的に JAR ファイルを EAR ファイルに追加し、 これらの JAR ファイルへの参照をすべて更新します。 
重要:
  • ローカル・インポートを行う一連の WSDL ファイルを使用する EJB Web サービスを作成するために WSDL2WebService コマンドを実行すると、EAR ファイルが生成されますが、 これがワークスペースにインポートされて、ユニット・テスト環境またはリモート・サーバーにデプロイされると、 サーバー開始中に例外が発生します。 この例外は、ルーター Web プロジェクトでの WSDL の欠落が原因です。 このエラーを避けるには、以下のいずれかを行ってください。
    • 管理者コンソールを使用してスタンドアロンの WebSphere Application Server にデプロイする。
    • 一体構造の WSDL を使用する。つまり、-splitWsdl 引数を使用しない。
    • EJB プロジェクトの META-INF/wsdl ディレクトリーの下にあるすべての WSDL ファイルを手動でルーター Web プロジェクトの WEB-INF/wsdl にコピーする。
  • -genResolver 引数を選択すると、EAR を開始できません。 この問題は、WSDL 文書が <wsdl:import> を使用して XSD をインポートするときの大文字小文字を -genResolver オプションが処理できないことにあります。 この問題を避けるには、以下のいずれかを行ってください。
    • <types><schema><import> を使用して XSD をインポートするように WSDL を編集する。
    • コマンド行ツールで -genResolver オプションを使用しない。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005