1.2.12. コマンドリファレンス

本マニュアル中で使用した Web サービスや Web サービスクライアント作成に関連のあるコマンド一覧です。 各コマンドの詳細は以下の節を参照して下さい。

1.2.12.1. wsimport

wsimportは、WSDLから、JAX-WSクライアントで利用するスタブやサービスクラス、およびWebサービスの動作に必要なクラスを生成するために利用します。
利用方法
コマンドおよびantのタスクとして実行します。
コマンドとして利用する場合は、以下のコマンドを実行してください。
Windowsの場合:
> wsimport.bat [option] <wsdl>
Unixの場合:
$ wsimport.sh [option] <wsdl>
<wsdl>にはWebサービスのwsdlを指定します。
[option]に指定できるオプションは後述のwsimportオプション一覧を参照してください。
antのタスクとして実行する場合は、wsimportタスクを記述します。以下はwsimportタスクの例です。
<wsimport
  wsdl="..."
  destdir="directory for generated class files"
  sourcedestdir="directory for generated source files"
  keep="true|false"
  extension="true|false"
  verbose="true|false"
  version="true|false"
  wsdlLocation="..."
  catalog="catalogfile"
  package="packagename"
  <bindingdir="..."
  includes="..." />
</wsimport>
各属性に指定する値は後述のwsimportオプション一覧を参照してください。
wsimportタスクを使用するためには、次の<taskdef>要素をプロジェクトに追加しておく必要があります。
<taskdef name="wsimport" classname="com.nec.webotx.webservice.tools.ws.ant.WsImport">
  <classpath path="jaxws.classpath"/>
</taskdef>
jaxws.classpathには、build.xml内で定義したwosv-ws.jarおよびJDK付属のtools.jarを含むクラスパス定義への参照を指定してください。

wsimportオプション一覧

表1.2.12.1-1
コマンドラインオプション Ant属性 説明
<wsdl> wsdl サービスのwsdlファイルを指定します。
-d <directory> destdir 生成される出力ファイルの格納先を指定します。
-b <path> binding 外部のJAX-WSまたはJAXBのバインディングファイルを指定します。ファイルごとに-bが必要となります。
-B <jaxbOption> xjcarg JAXBスキーマコンパイラに渡すオプションを指定します。
-catalog catalog 外部エンティティ参照を解決するためのカタログファイルを指定します。
-extension extension (仕様で定義されていない)ベンダ固有の拡張機能を許可します。現在のところ、ベンダ拡張の非標準SOAP1.2バインディングを使用する際に指定します。
-help - ヘルプを表示します。
-httpproxy: <host>:<port> - HTTPプロキシサーバを指定します。デフォルトのポートは8080です。
-keep keep 生成したソースファイルを削除しません。
-p package ターゲットパッケージを指定します。このオプションを指定した場合、すべてのwsdl/スキーマバインディングのカスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムより、この値が優先されます。
-s <directory> sourcedestdir 生成したソースファイルの格納先を指定します。
-target target 出力コードが準拠するJAX-WS仕様のバージョンを指定します。
-verbose verbose コンパイラの出力メッセージを表示します。
-version - バージョン情報を表示します。
-wsdllocation <location> wsdllocation WebServiceClientアノテーションの.wsdlLocationに設定する値を指定します。

1.2.12.2. wsgen

wsgenは、Webサービスエンドポイント実装クラスから、Webサービスの動作に必要なクラスおよびWSDLを作成するために利用します。
利用方法
コマンドまたはantのタスクとして実行します。
コマンドとして利用する場合は、以下のコマンドを実行してください。
Windowsの場合:
> wsgen.bat [option] <SEI>
Unixの場合:
$ wsgen.sh [option] <SEI>
<SEI>にはサービスエンドポイントの実装クラスを指定します。
[option]に指定できるオプションは後述のwsgenオプション一覧を参照してください。
antのタスクとして実行する場合は、wsgenタスクを記述します。以下はwsgenタスクの例です。
<wsgen
  sei="..."
  destdir="directory for generated class files"
  classpath="classpath" | cp="classpath"
  resourcedestdir="directory for generated resource files such asWSDLs"
  sourcedestdir="directory for generated source files"
  keep="true|false"
  verbose="true|false"
  genwsdl="true|false"
  protocol="soap1.1|Xsoap1.2"
  servicename="..."
  portname="...">
  extension="true|false"
  <classpath refid="..."/>
</wsgen>
各属性に指定する値は後述のwsgenオプション一覧を参照してください。
wsgenタスクを使用するためには、次の<taskdef>要素をプロジェクトに追加しておく必要があります。
<taskdef name="wsgen" classname="com.nec.webotx.webservice.tools.ws.ant.WsGen">
  <classpath path="jaxws.classpath"/>
</taskdef>
jaxws.classpathには、build.xml内で定義したwosv-ws.jarおよびJDK付属のtools.jarを含むクラスパス定義への参照を指定してください。

wsgenオプション一覧

表1.2.12.2-1
コマンドラインオプション Ant属性 説明
<SEI> sei サービスエンドポイントの実装クラス名を指定します。
-classpath <path> classpath 入力クラスファイルの検索場所を指定します。
-cp <path> cp -classpathと同じです。
-d <directory> destdir 生成される出力ファイルの格納先を指定します。
-extension extension (仕様で定義されていない)ベンダ固有の拡張機能を許可します。現在のところ、-wsdl:Xsoap1.2を使用する際に必要なオプションとなります。
-help - ヘルプを表示します。
-keep keep 生成したソースファイルを削除しません。
-r <directory> resourcedestdir WSDL等のリソースファイルの格納先を指定します。常に-wsdlオプションと組み合わせて指定します。
-s <directory> sourcedestdir 生成したソースファイルの格納先を指定します。
-verbose verbose コンパイラの出力メッセージを表示します。
-version - バージョン情報を表示します。
-wsdl[:protocol] protocol wsdlを生成します(デフォルトでは生成しません)。protocolにはwsdl:bindingで使用するプロトコルを指定します。指定できるプロトコルは"soap1.1"(デフォルト)および"Xsoap1.2"です。
-servicename <name> servicename wsdlに出力されるwsdl:serviceの名前を指定します。常に-wsdlオプションと組み合わせて指定します。
-portname <name> portname wsdlに出力されるwsdl:portの名前を指定します。常に-wsdlオプションと組み合わせて指定します。

1.2.12.3. apt

aptは、JDK 5.0以上に付属するコマンドで、JSR175で規定されているアノテーションを処理するためのツールです。Webサービスエンドポイント実装クラスのソースから、Webサービスの動作に必要なクラスを作成するために利用します。
利用方法
antのタスクとして実行します。コマンドで実行する場合はJDK付属のマニュアルを参照してください。
aptをantのタスクとして実行する場合は、aptタスクを記述します。以下はaptタスクの例です。
<apt
  verbose="true|false"
  classpath="classpath"
  destdir="directory for generated class files"
  sourcedestdir="directory for generated source files"
  nocompile="true|false"
  print="true|false"
  factorypath="<path>"
  factory="name of AnnotationProcessorFactory to use"
  <option key="keyname" value="keyvalue"/>
  <source ... >... </source>
</apt>
<!-- javacオプションは省略 -->
各属性に指定する値は後述のaptオプション一覧を参照してください。
aptタスクを使用するためには、次の<taskdef>要素をプロジェクトに追加しておく必要があります。
<taskdef name="apt" classname="com.nec.webotx.webservice.tools.ws.ant.Apt">
  <classpath path="jaxws.classpath"/>
</taskdef>
jaxws.classpathには、build.xml内で定義したwosv-ws.jarおよびJDK付属のtools.jarを含む、クラスパス定義への参照を指定します。

aptオプション一覧

表1.2.12.3-1
コマンドラインオプション Ant属性 説明
-source source サービスエンドポイントの実装クラスのソースファイルを指定します。
-classpath classpath 入力クラスファイルの検索場所を指定します。
-cp cp -classpathと同じです。
-d destdir 生成される出力ファイルの格納先を指定します。
-s sourcedestdir 生成したソースファイルの格納先を指定します。
-A[key[=value]] option アノテーションプロセッサに渡されるオプションです。
-nocompile nocompile ソースファイルをコンパイルしません。
-print print 指定した型のテキスト表示を出力します。
-factorypath factorypath AnnotationProcessorFactoryの検索場所を指定します。
-factory factory 使用するAnnotationProcessorFactoryの名前を指定します。デフォルトの検索処理をバイパスします。

1.2.12.4. wscompile

Memo
JAX-RPCは旧互換のための機能です。


wscompileコマンドは、JAX-RPCランタイムのコマンドラインツールです。JavaインタフェースクラスからのWSDL生成、WSDLからサービスエンドポイントインタフェースやスタブ等のJavaクラスの生成ができます。ここでは、wscompileの使用方法について説明します。
実行方法
> wscompile <オプション> <設定ファイル>
オプション
wscompileで使用するオプションについて説明します。wscompileは引数に、これらのオプションを指定して実行します。
表1.2.12.4-1
オプション 説明
-define WSDLを生成する場合に指定します。
-gen (または-gen:client) クライアントサイドのJavaのコードを生成する場合に指定します。
-gen:server サーバサイドのJavaのコードを生成する場合に指定します。
-gen:both クライアントサイド、サーバサイド両方のJavaのコードを生成する場合に指定します。
-d 生成ファイルの出力場所を指定します。-nd、-sを指定しない場合は、このオプションで指定した場所にマッピングファイル以外のすべてのファイルが生成されます。生成場所として指定可能なディレクトリは、すでに存在しているものに限ります。
-nd WSDLファイルの生成場所を指定します。
-s Javaソースファイルの生成場所を指定します。
-keep Javaソースファイルを生成します。デフォルトでは、ソースファイル自体が生成されずにコンパイル結果のみが生成されます。
-mapping ファイルパス 指定されたファイルパスにWSEE仕様に準拠したマッピングファイルを生成します。
-f:wsi WS-Iに対応したJavaのコードやWSDLを生成します。
-f:documentliteral SOAPメッセージ形式をdocument/literalで生成します。
-f:rpcliteral SOAPメッセージ形式をrpc/literalで生成します。
-f:amenableSequence WSDL のmessage-part要素の順番でSOAP メッセージを構築します。このオプションは-f:wsiと同時に利用することで有効になります。
-f:ignoreFilePathCheck ファイルパス長のチェック機能を無視します。ファイルパス長チェック機能の有効、無効化はWindows版のみ対応しています。
-f:useonewayoperations 一方向通信を行います。SOAPメッセージ形式がRPCではvoidのメソッドについて、Documentでは全てのメソッドが対象になります。Documentのとき、ユーザ定義の例外は宣言できません。
-define、-gen、-gen:client、-gen:bothのうち必ず1つは指定しなければなりません。複数同時に指定することはできません。RPC/literal、Document/literalにおいてはvoidのメソッドをWebサービス化する場合、-f:useonewayoperationsを使って一方向通信にするのが基本ですが、空のメッセージが返るようにしたい場合は、コマンド実行時のJava VMオプションで「-DvoidReturn=true」を設定してください。
設定ファイル
wscompileコマンドで使用する設定ファイルについて説明します。設定ファイルは、WSDLを生成する場合と、サービスエンドポイントインタフェースやスタブなどのJavaソースコードを生成する場合では、指定する要素や属性が異なります。このファイル名に規定はありません。以降ではconfig.xmlとして説明します。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
  <service name="MyHelloService"
    targetNamespace="urn:Foo"
    typeNamespace="urn:Foo"
    packageName="helloservice">
    <interfacename="helloservice.HelloIF" />
  </service>
</configuration>
service要素のname属性にはWebサービス名を、targetnamespace属性にはWSDLの名前空間URIを、typeNamespaceにはschema要素の名前空間URIを、packageNameにはJavaパッケージ名をそれぞれ指定します。interface要素には、WSDLを生成するために使用するコンパイル済みのJavaインタフェースクラスを指定します。

Caution
WSDLを生成するために使用するJavaインタフェースは、java.rmi.Remoteを継承する必要があります。また、インタフェース内で宣言されているすべてのメソッドはjava.rmi.RemoteExceptionをスローしなければなりません。

<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
  <wsdl location="test.wsdl" packageName="test"/>
</configuration>
wsdl要素のlocation属性にはWSDLファイルを指定し、packageName属性には生成するJavaクラスのパッケージ名を指定します。
実行例
> wscompile -define -d C:\tmpconfig.xml
> wscompile -gen -d C:\tmp -keepconfig.xml