WSDL2WebService ツールの解説

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

構文

一度コマンド行をセットアップすると、次の構文と引数を使用して、 ツールを実行できます。

スケルトン Web サービス実装を作成する構文は、 次のとおりです。

注: 最後の引数は <WSDL URI> でなければなりません。

Web サービス対応のアーカイブを作成する構文は、次のとおりです。

引数: スケルトン Web サービス実装

注: -input オプションは削除されました。 インポートされた XSD 文書と WSDL 文書はすべて、<WSDL URI> で指定した WSDL ファイルと同じディレクトリーに入れる必要があります。

必須引数:

-createService <ServiceName>
Web サービスの固有の名前を指定します。この名前は、Web サービスのコンテキスト・ルートとして使用されます。
-project <ProjectDir>
出力用ターゲット・プロジェクト・ディレクトリーの完全修飾パス名を指定します。このディレクトリーが存在しない場合は、自動的に作成されます。 デフォルトは現行ディレクトリーです。
- <WSDL URI>
Web サービスを記述する WSDL ファイルの場所を指定します。これは、リモート・ファイル・システムにあっても ローカル・ファイル・システムにあってもかまいません。

オプション引数:

-host <HostName:PortNumber>
Web サービスのデプロイ先のホスト名とポート番号を指定します。デフォルト値は localhost:6080 です。
-genResolver
インポート・リゾルバーを生成します。ここには、インポートされる XSD (xml スキーマ) ファイルからの情報が すべて含まれています。このパラメーターのその他の情報については、 注 1 を参照してください。
-clientType <J2SE | Application | Servlet | EJB>
指定したクライアント・タイプのスケルトン実装クラスを生成します。 この引数は、必ず -genMain 引数と一緒に使用します。 -server-side-only 引数を既に指定している場合は、 この引数は使用できません。
-clientEJBName <EJB client filename>
クライアント EJB ファイル内の情報を使用して、クライアント・サイドの webservicesclient.xml 記述子を、 クライアント・アプリケーションの名前で構成します。 この引数を指定しない場合は、webservicesclient.xml を手動で編集してから、 それをクライアント EJB ファイルに追加する必要があります。
-genMain <name of main class>
生成するメイン・クラスの名前を指定します。この引数は、 必ず -clientType 引数と一緒に使用します。 -server-side-only 引数を既に指定している場合は、 この引数は使用できません。
-contextRoot<ContextRoot>
Web サービスのコンテキスト・ルートを指定します。デフォルト値は <ServiceName> です。
-type <EJB | Bean>
特に Java™ Bean または EJB 実装用の テンプレートを生成します。デフォルトでは、Java Bean 用のテンプレートが作成されます。
-NStoPkg <list>
namespace=package マッピングのスペース区切りリストを指定します。 このマッピングは、生成済みの Java テンプレート・クラスのデフォルト・パッケージ名を オーバーライドする場合に使用されます。
-fileNStoPkg <propertiesFile>
namespace=package マッピングが含まれるプロパティー・ファイルの完全修飾パス名を指定します。

注: この引数を使用する場合は、 すべての名前空間参照で、http¥://my.namespace のように、円記号 (¥) を使用して コロン「:」をエスケープする必要があります。WSDL2WebService は、エスケープされたコロンを含まない 名前空間参照は無視します。

-all
WSDL 文書で定義したすべての複合型に対して、Java クラスを生成します。 デフォルトでは、WSDL 文書で定義および参照されるクラスだけが 生成されます。この引数は、必ず -createService 引数と一緒に 使用してください。
-server-side-only
サーバー・サイド・ヘルパー・クラスのみを生成します。デフォルトでは、 サーバー・サイドだけではなくクライアント・サイドのヘルパー・クラスも生成されます。
- wsSecDir <directory>
WS-Security 情報で生成されたデプロイメント記述子を構成するテンプレートが 含まれているディレクトリーの絶対パスを指定します。このディレクトリーには、 ibm-webservices-bnd.xmi ファイルと ibm-webservices-ext.xmi ファイルが含まれている 必要があり、クライアント・サイドのバインディングを生成する場合は、 ibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmi も 含まれている必要があります。
-clientEJBName <EJB client filename>
クライアント EJB ファイル内の情報を使用して、クライアント・サイドの webservicesclient.xml 記述子を、 クライアント・アプリケーションの名前で構成します。 この引数を指定しない場合は、webservicesclient.xml を手動で編集してから、 それをクライアント EJB ファイルに追加する必要があります。
-user
リモート WSDL へのアクセス時に使用するユーザー名を指定します。
-password
リモート WSDL へのアクセス時に使用するパスワードを指定します。
-verbose
ツールの実行時に追加情報を表示します。
-help
ヘルプ情報を表示します。
-overwrite
既存のサービス・ディレクトリーを上書きします。

引数: Web サービス対応アーカイブ

必須引数:

-createEar <TargetFile.ear>
ターゲット EAR ファイルの完全修飾パス名を指定します。このパス名が存在しない場合は 作成されます。既に存在している場合は、-add オプションで指定した Web モジュールが、 必要に応じて追加/更新されます。
-project <ProjectDir>
保存される 1 つ以上の Web サービス実装が含まれるプロジェクト・ディレクトリーの、 完全修飾パス名を指定します。これらは、-createService 引数を指定したツールで 生成されている場合もあります。

オプション引数:

-add <services>
アーカイブに追加する Web サービス名のスペース区切りリストを指定します。これらは、指定したプロジェクトの下に既に作成されている Web サービス実装に 対応していなければなりません。このオプションを使用しない場合は、 該当するディレクトリーがすべて追加されます。これらの名前のいずれかに対する Web サービス・モジュールが EAR ファイルに 既に存在している場合、それはディレクトリーの最新の内容で更新されます。
-verbose
ツールの実行時に追加情報を表示します。
-help
ヘルプ情報を表示します。

注: -deploy オプションは サポートされていません。

-rootModule <root module base name>
同じタイプの個々の Web サービスを、1 つのモジュールにマージし、 集約します。Web モジュールの名前は <root module base name>_WEB.war になり、 一方 EJB モジュールの名前は <root module base name>_EJB.jar になります。
-host <host name:port number>
すべての Web サービスのホスト名とポート番号を置換します。このオプションは、 必ず -rootModule と一緒に使用します。
重要: WSDL2WebService コマンドを実行し、 ローカル・インポートを実行する WSDL ファイルのセットを使用して EJB Web サービスを作成すると、 EAR ファイルが生成されますが、それをワークスペースにインポートし、 単体テスト環境またはリモート・サーバーにデプロイすると、 サーバーの始動時に例外が発生します。この例外は、ルーターの Web プロジェクトに WSDL が欠落しているために起こります。 このエラーを防ぐためには、次のいずれかを実行してください。
  • 管理コンソールを使用して、スタンドアロンの WebSphere Application Server にデプロイします。
  • モノリシック WSDL を使用します。-splitWsdl 引数は使用しないでください。
  • EJB プロジェクト内の META-INF/wsdl ディレクトリーにある すべての WSDL ファイルを、ルーター Web プロジェクトの WEB-INF/wsdl に、 手動でコピーします。
注 1: リモートの絶対参照をローカルにするには、 -genResolver 引数だけを選択します。そうすると、Web サービスの実行時に インターネットに接続する必要がありません。この引数は、ローカルまたは相対インポートでは 使用できません。また、-genResolver オプションは、XSD ファイルをインポートする WSDL インポートが 含まれる WSDL ファイルでは使用できません。例えば、 次のように WSDL インポートをスキーマ要素の外側に置くのではなく、
  <import location="a.xsd" namespace="http://namespaceA"/>
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://namespaceA" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
次のように、それをスキーマ要素内部のスキーマ・インポートで置き換えます。
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://namespaceA" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <import schemaLocation="a.xsd" namespace="http://namespaceA"/>

フィードバック