JAX-WS アプリケーション用の wsgen コマンド
wsgen コマンド行ツールは、Java™ コードから開始する際に、Java API for XML Web Services (JAX-WS) アプリケーションが要求する必要な成果物を生成します。生成される成果物は Java 5 に準拠しており、さまざまな Java のバージョンおよびプラットフォーム間で移植可能です。
JAX-WS Web サービスの開発にボトムアップのアプローチを使用して、サービス・エンドポイント実装から開始する場合、必要な JAX-WS 成果物を生成するため、wsgen ツールを使用します。


- メッセージの内容をマーシャルおよびアンマーシャルするのに必要な、 追加の Java Architecture for XML Binding (JAXB) クラス。
- オプションの -wsdl 引数が指定されている場合の WSDL ファイル。 wsgen ツールは、WSDL ファイルを自動的に生成しません。
JAX-WS V2.2 ツールを使用する場合は、java.lang.RuntimeException および java.rmi.RemoteException 参照およびそれらのサブクラスは、WSDL ファイル内に マップされなくなりました。この動作変更は JAX-WS V2.1 仕様のセクション 3.7 に 記述されている規格適合ルールに準拠しています。この規格適合ルールは、 java.lang.RuntimeException および java.rmi.RemoteException クラス およびサブクラスをサービス特有の例外として扱うことはできず、WSDL ファイル内に マップできないことを指定しています。
コマンド行からツールを使用する方法に加えて、 これらの JAX-WS ツールを WebSphere Application Server traditional の Ant ビルド環境内から 起動することができます。wsgen ツールを起動するには、Ant ビルド環境内から com.sun.tools.ws.ant.WsGen Ant タスク を使用します。 この Ant タスクが正しく作動するようにするには、 ws_ant スクリプトを使用して Ant を起動する必要があります。

エラー: Two classes have the same XML type name ....
Use @XmlType.name and @XmlType.namespace to assign different names to them...
このエラーは、名前が同一であって、
異なる Java パッケージ内に存在する
クラス名または @XMLType.name 値があることを示します。このエラーを回避するには、既存の @XMLType アノテーションに、@XML.Type.namespace クラスを追加して、XML タイプを区別します。gotchaJAX-WS アプリケーションでは、wsgen コマンド行ツールで完全プロファイルの共有クラス・ファイルが見つからないことがあります。com.ibm.websphere.webservices.WSDL_Generation_Extra_ClassPath カスタム・プロパティーを使用して、これらのクラス・ファイルのロケーションを指定できます。詳しくは、Java 仮想マシンのカスタム・プロパティーに関する資料を参照してください。
構文
コマンド行構文は次のとおりです。
![[Windows]](../images/windows.gif)
app_server_root¥bin¥wsgen.bat [options] service_implementation_class
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
app_server_root/bin/wsgen.sh [options] service_implementation_class
![[IBM i]](../images/iseries.gif)
app_server_root/bin/wsgen [options] service_implementation_class
パラメーター
service_implementation_class 名が、唯一必要なパラメーターです。 以下のパラメーターは、wsgen コマンドのオプションです。
- -classpath <path>
- サービス実装クラスのロケーションを指定します。
- -cp <path>
- サービス実装クラスのロケーションを指定します。この パラメーターは -classpath <path> と同じです。
- -d <directory>
- 生成済み出力ファイルを保管する場所を指定します。
- -extension
- JAX-WS 仕様で指定されていない機能のカスタム拡張を使用可能にするかどうかを指定します。拡張を使用すると、ポータブルではないアプリケーションになるか、または他の実装と相互運用されなくなることがあります。
- -help
- ヘルプ・メニューを表示します。
- -keep
- 生成済みソース・ファイルを保持するかどうかを指定します。
- -r <directory>
- このパラメーターは、-wsdl パラメーターと共にのみ使用されます。 生成済み WSDL ファイルを保管する場所を指定します。
- -s <directory>
- 生成済みソース・ファイルを保管するディレクトリーを指定します。
- -verbose
- コンパイラーが実行している内容を出力するメッセージを指定します。
- -version
- バージョン情報を出力します。このオプションを指定した場合、 バージョン情報のみが出力され、通常のコマンド処理は行われません。
- -wsdl [:protocol]
- デフォルトでは、wsgen ツールは WSDL ファイルを生成しません。このオプション・パラメーターは、wsgen に WSDL ファイルを生成させますが、通常は、エンドポイントがデプロイされる前に開発者が WSDL ファイルを確認できるようにするためのみに使用されます。 protocol はオプションで、wsdl:binding で使用されるプロトコルを指定します。protocol の有効な値は、soap 1.1 および Xsoap 1.2 です。デフォルト値は soap 1.1 です。Xsoap 1.2 値は標準ではなく、-extension オプションと共にのみ使用されます。
- -servicename <name>
- このパラメーターは -wsdl オプションと共にのみ使用されます。
WSDL ファイルで生成される wsdl:service 名を指定します。
以下に例を示します。
-service name "{http://mynamespace/}MyService"
- -portname
- このパラメーターは -wsdl オプションと共にのみ使用されます。
WSDL ファイルで生成される wsdl:port 名を指定します。
以下に例を示します。
-portname "{http://mynamespace/}MyPort"