JAX-WS アプリケーション用の wsimport コマンド
wsimport コマンド行ツールは、既存の Web サービス記述言語 (WSDL) ファイルを処理して、Java™ API for XML-Based Web Services (JAX-WS) Web サービス・アプリケーションを開発するために必要な成果物を生成します。生成される成果物は Java 5 に準拠しており、さまざまな Java のバージョンおよびプラットフォーム間で移植可能です。
wsimport コマンド行ツールは、JAX-WS Web サービスを開発するトップダウン・アプローチをサポートします。既存の WSDL ファイルで開始する際は、wsimport コマンド行ツールを使用して必要な JAX-WS 成果物を生成します。


注: コマンド行ツール wsimport、wsgen、schemagen および xjc は、アプリケーション・サーバーの Liberty と
WebSphere Application Server traditional の両方で使用できます。
wsimport ツールは、既存の WSDL ファイルを読み取り、以下の成果物を生成します。
- サービス・エンドポイント・インターフェース (SEI) - SEI は Web サービス用の WSDL ファイルの、アノテーションを付けた Java 表現です。このインターフェースは、JavaBeans エンドポイントの実装や、動的プロキシー・クライアント・インスタンスの作成に使用されます。
- javax.xml.ws.Service 拡張クラス - これは、javax.xml.ws.Service クラスを拡張する生成済みクラスです。このクラスは、動的プロキシーおよびディスパッチ・インスタンスの両方を構成および作成するのに使用されます。
- Web サービス・データをモデル化するのに必要な Java Architecture for XML Binding (JAXB) Bean を含む、必要なデータ Bean です。

- メイン WSDL ファイル内ですべてのサービスを定義する必要があります。インポートされた WSDL ファイル内で定義されるサービスは、wsimport ツールによって処理されません。
- wsimport ツールを、文書またはリテラル・スタイル・パターンを実装する WSDL ファイル上で実行する場合は、入出力タイプを定義する complexTypes エレメントが、固有の名前で構成される必要があります。これは、操作のパラメーター・リストの名前競合を防ぐためです。
- wsimport ツールを実行し、?wsdl Uniform Resource Identifier (URI) を WSDL ファイルのパラメーターとして渡す場合、実際の解決済み WSDL URI を使用しているかを確認してください。完全プロファイルでは、wsimport ツールは、正常に ?wsdl URI を解決しますが、参照される他の相対 URI は、正常に解決されない場合があります。Liberty プロファイルでは、wsimport ツールは、?wsdl URI および参照される他の相対 URI を正常に解決します。
コマンド行からツールを使用する方法に加えて、 これらの JAX-WS ツールを WebSphere Application Server traditional の Ant ビルド環境内から 起動することができます。WsImport ツールを呼び出すには、Ant ビルド環境内から com.sun.tools.ws.ant.WsImport Ant タスクを使用します。この Ant タスクが正しく作動するようにするには、 ws_ant スクリプトを使用して Ant を起動する必要があります。
構文
コマンド行構文は次のとおりです。
![[Windows]](../images/windows.gif)
app_server_root\bin\wsimport.bat [options] WSDL_URI
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
app_server_root/bin/wsimport.sh [options] WSDL_URI
![[IBM i]](../images/iseries.gif)
app_server_root/bin/wsimport [options] WSDL_URI
パラメーター
WSDL_URI が、唯一必要なパラメーターです。 以下のパラメーターは、wsimport コマンドのオプションです。
- -b <path>
- 外部 JAX-WS ファイルまたは JAXB バインディング・ファイルを指定します。-b オプションを使用することで、複数の JAX-WS ファイルおよび JAXB バインディング・ファイルを指定できます。 ただし、各ファイルは、そのファイルそれぞれの -b オプションで指定しなければなりません。
- -B <jaxbOption>
- このオプションを JAXB スキーマ・コンパイラーに受け渡すことを指定します。
- -catalog
- 外部エンティティー参照を解決するためのカタログ・ファイルを指定します。TR9401、XCatalog、および OASIS XML カタログ・フォーマットがサポートされています。
- -d <directory>
- 生成済み出力ファイルを保管する場所を指定します。
- -extension
- JAX-WS 仕様で指定されていない機能のカスタム拡張を受け入れるかどうかを指定します。 カスタム拡張を使用すると、ポータブルではないアプリケーションになったり、 または他の実装と相互運用しなくなることがあります。
- -help
- ヘルプ・メニューを表示します。
- -httpproxy:<host>:<port>
- HTTP プロキシーを指定します。デフォルトのポート値は 8080 です。
- -keep
- 生成済みソース・ファイルを保持するかどうかを指定します。
- -p <package_name>
- このコマンド行オプションでターゲット・パッケージを指定して、パッケージ名についてのすべての WSDL ファイルおよびスキーマ・バインディングのカスタマイズ、および JAX-WS 仕様で定義されたデフォルトのパッケージ名アルゴリズムをオーバーライドします。
- -quiet
- wsimport 出力を抑止することを指定します。
- -s <directory>
- 生成済みソース・ファイルを保管するディレクトリーを指定します。
- -target <version>
- 特定の JAX-WS 仕様レベルに準拠するコードを生成することを指定します。バージョン 2.0 または 2.1 を指定すると、それぞれ JAX-WS 2.0 および JAX-WS 2.1 仕様に準拠するコードが生成されます。 バージョン 2.1 の 指定は、JAX-WS 2.1 仕様に準拠するコードを生成することを指示します。デフォルト値はバージョン 2.2 で、JAXB 2.2 仕様の準拠コードが生成されます。
- Liberty プロファイルには target オプションが必要です。
- -verbose
- コンパイラーが実行している内容を出力するメッセージを指定します。
- -version
- バージョン情報を出力します。このオプションを指定した場合、バージョン情報のみが出力に組み込まれ、通常のコマンド処理は行われません。
- -wsdlLocation
- @WebServiceClient.wsdlLocation 値を指定します。
サポートされる構成: wsimport ツール は、-wsdlLocation 属性が指定されている場合 @WebService.wsdlLocation 値を設定せず、 デフォルトでも設定しません。wsimport コマンド行ツールによって、@WebServiceClient.wsdlLocation アノテーションのみが更新されます。Web サービス記述言語 (WSDL) ファイルのロケーションを指定する相対 URL を使用して、@WebService.wsdlLocation アノテーションを手動で更新することができます。@WebService.wsdlLocation アノテーションが、エンドポイント実装クラスに存在する場合、値は相対 URL であり、それが参照する WSDL 文書はアプリケーションとともにパッケージされる必要があります。sptcfg
トラブルの回避 (Avoid trouble): -wsdlLocation パラメーター に HTTPS URL が指定されている場合、wsimport ツール は、引数なしのコンストラクターでサービス・クラスを生成しますが、これは 有効ではありません。引数なしのサービス・コンストラクターを 使用してサービスをインスタンス化するのは避けてください。その代わりに、次の例のように、サービス・クラス・コンストラクター の 1 つで引数として WSDL URL を使用するコンストラクターに、HTTPS URL を渡すようにしてください。
gotchaMyService("https://example.ibm.com/My?wsdl");
- -clientJar
- サービス WSDL での wsimport は、Web サービス呼び出しに必要なクラスを生成します。ただし、 JAX-WS ランタイムが必要とするすべての情報が、標準 Web サービス・アノテーションを通して SEI または WebServiceClient で取り込まれるわけではありません。 生成されるクラスは、実行時にサービスの追加メタデータを取得できるように WSDL のロケーションを保有しています。ただし、 サービス・インスタンスが作成されるたびに、メタデータにアクセスするためだけに追加で接続が必要となり、ネットワーク使用量が増加します。wsimport の -clientJar オプションを使用すると、WSDL およびスキーマが自動的にダウンロードされ、生成されたすべてのクライアント・サイド成果物は 1 つの JAR ファイルにパッケージされます。したがって、 この新しいオプションを使用することによって、生成された JAR ファイルをクラスパスに含めることができ、サービス・インスタンスが作成されるたびにエンドポイントから WSDL を取り出す必要がなくなり、それによってネットワーク使用量を節約できます。