コマンド行から WSDL2WebService ツールを使用すると、IBM® WebSphere® ランタイム環境を
使用して、WSDL ファイルから Web サービスを生成することができます。
構文
一度コマンド行をセットアップすると、次の構文と引数を使用して、
ツールを実行できます。
スケルトン Web サービス実装を作成する構文は、
次のとおりです。
- Windows: WSDL2WebService
[<optional arguments>] -createService <ServiceName> -project <ProjectDir> <WSDL
URI>
- Linux: WSDL2WebService.sh
[<optional arguments>] -createService <ServiceName> -project <ProjectDir> <WSDL
URI>
注: 最後の引数は <WSDL
URI> でなければなりません。
Web サービス対応のアーカイブを作成する構文は、次のとおりです。
- Windows: WSDL2WebService
[<optional arguments>] -createEar <File.ear> -project <ProjectDir>
- Linux: WSDL2WebService.sh
[<optional arguments>] -createEar <File.ear> -project <ProjectDir>
引数: スケルトン 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.xmi と ibm-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"/>