WebLogic Web サービス プログラマーズ ガイド
Ant タスク リファレンス
以下の節では、WebLogic Web サービス Ant タスクに関するリファレンス情報を提供します。
デプロイメント環境に上記の Ant タスクを統合し、デプロイメント環境でこれらの Ant タスクを使用して、Web サービスおよび Web サービスを呼び出すクライアント アプリケーションをプログラミングする方法については、以下の章を参照してください。
WebLogic Web サービス Ant タスクの概要
Ant は、make
コマンドに似た Java ベースの構築ツールですが、その機能ははるかに強力です。Ant は、XML ベースのコンフィグレーション ファイル (デフォルトでは build.xml
) を使用して Java で記述されたタスクを実行します。Web サービスに関する重要なアーティファクトを生成する際に、さまざまな Ant タスクを利用できます。
Apache Web サイトでは、EAR、WAR、EJB JAR ファイルをパッケージ化するための他の便利な Ant タスクも提供されています。詳細については、http://jakarta.apache.org/ant/manual/ を参照してください。
Web サービス Ant タスクのリスト
次の表では、BEA が提供する Web サービス Ant タスクの概要について説明します。
表 A-1 WebLogic Web サービス Ant タスク
Ant タスク
|
解説
|
clientgen
|
JAX-RPC サービス スタブなど、Web サービスの呼び出しに使用するクライアントサイド ファイルを生成する。
|
jwsc
|
JWS アノテーション付きファイルを Web サービスにコンパイルする。JWS とは Java Web Service (Java Web サービス) のこと。
|
wsdlc
|
WSDL ファイルを基に Web サービスの部分的な実装を生成する。
|
Web サービス Ant タスクの使用
Ant タスクを使用するには、次の手順に従います。
Windows NT では、ドメイン ディレクトリにある setDomainEnv.cmd
コマンドを実行します。WebLogic Server ドメインのデフォルトの位置は、BEA_HOME
\user_projects\domains\
domainName
です。BEA_HOME
は BEA Products の最上位のインストール ディレクトリで、domainName
はドメインの名前です。
UNIX では、ドメイン ディレクトリにある setDomainEnv.sh
コマンドを実行します。WebLogic Server ドメインのデフォルトの位置は、BEA_HOME
/user_projects/domains/
domainName
です。BEA_HOME
は BEA Products の最上位のインストール ディレクトリで、domainName
はドメインの名前です。
Web サービス Ant タスクの呼び出しを含む build.xml
というファイルを作成します。
以下に、clean
というターゲットを 1 つ指定した簡単な build.xml
ファイルの例を示します。
<project name="my-webservice">
<target name="clean">
<delete>
<fileset dir="tmp" />
</delete>
</target>
</project>
この clean
ターゲットにより、temp
サブディレクトリ内のすべてのファイルが削除されます。
build.xml
ファイルで Ant タスクを指定する例は後の節で紹介します。
実行する WebLogic Web サービス Ant タスクごとに、<taskdef>
要素および <target>
要素を使用して、適切なタスク定義とターゲットを build.xml
に追加します。次の例では、jwsc
Ant タスクをビルド ファイルに追加する方法を示します。ここでは、分かりやすくするためにタスクの属性を省いています。
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="build-service">
<jwsc attributes go here...
>
...
</jwsc>
</target>
それぞれの Ant タスクに対応する <taskdef>
要素の name
属性値を変更すれば、WebLogic Web サービス Ant タスクに任意の名前を付けることができます。このマニュアルでは、整合性を考慮して jwsc
、clientgen
、および wsdlc
という名前に統一しています。
build.xml
ファイルと同じディレクトリで ant
と入力し、ターゲットを指定して、Ant タスクまたは build.xml
ファイルで指定されたタスクを実行します。
prompt> ant build-service
WebLogic Ant タスクのクラスパスの設定
各 WebLogic Ant タスクには、新しいディレクトリまたは JAR ファイルを現在の CLASSPATH 環境変数に追加できるように、classpath
属性または要素を受け取ります。
次の例では、jwsc
Ant タスクの classpath
属性を使用して、新しいディレクトリを CLASSPATH 変数に追加する方法を示します。
<jwsc srcdir="MyJWSFile.java"
classpath="${java.class.path};my_fab_directory"
...
</jwsc>
次の例では、<classpath>
要素を使用して CLASSPATH に追加する方法を示します。
<jwsc ...>
<classpath>
<pathelement path="${java.class.path}" />
<pathelement path="my_fab_directory" />
</classpath>
...
</jwsc>
次の例では、WebLogic Web サービス Ant タスク宣言の外で CLASSPATH 変数を構築してから、<classpath>
要素を使用してタスク内でその変数を指定する方法を示します。
<path id="myClassID">
<pathelement path="${java.class.path}"/>
<pathelement path="${additional.path1}"/>
<pathelement path="${additional.path2}"/>
</path>
<jwsc ....>
<classpath refid="myClassID" />
...
</jwsc>
注意 : WebLogic Server の Java Ant ユーティリティでは WL_HOME\server\bin
ディレクトリ (WL_HOME は WebLogic Server がインストールされている最上位ディレクトリ) にある ant
(UNIX) または ant.bat
(Windows) コンフィグレーション ファイルを使用して各種の Ant 固有変数を設定します。これらの Ant 変数を更新する必要がある場合、使用しているオペレーティング システム用のコンフィグレーション ファイルを変更します。
WSDL および XML スキーマ ファイルの操作時におけるオペレーティング システムの大文字/小文字の区別の違い
WebLogic Web サービスの Ant タスクの多くには、WSDL または XML スキーマ ファイルなどのファイルを指定するために使用できる属性があります。
Ant タスクは、それらのファイルを大文字と小文字を区別して処理します。つまり、XML スキーマ ファイルで名前が大文字と小文字の点でのみ異なるユーザ定義の 2 つの型 (たとえば MyReturnType
と MYRETURNTYPE
) が指定されている場合、clientgen
Ant タスクは、ユーザ定義データ型の Java 表現に対応する 2 つの別々の Java ソース ファイル セット (MyReturnType.java
と MYRETURNTYPE.java
) を適切に生成します。
ただし、それらのソース ファイルをそれぞれのクラス ファイルにコンパイルすると、Ant タスクを Microsoft Windows で実行する場合に問題が生じる場合があります。Windows では、大文字と小文字の区別をしないためです。つまり、Windows では、ファイル MyReturnType.java
と MYRETURNTYPE.java
が同じ名前と判断されます。したがって、Windows でファイルをコンパイルすると、2 番目のクラス ファイルが最初のクラス ファイルを上書きしてしまい、クラス ファイルが 1 つしか残りません。しかし Ant タスクは 2 つのクラスがコンパイルされたものと認識しているので、次のようなエラーが発生することになります。
c:\src\com\bea\order\MyReturnType.java:14:
class MYRETURNTYPE is public, should be declared in a file named MYRETURNTYPE.java
public class MYRETURNTYPE
^
この問題を回避するには、この種の名前の衝突が起こらないように XML スキーマを書き換えるか、あるいはそれが不可能な場合は、UNIX などの大文字と小文字を区別するオペレーティング システムで Ant タスクを実行します。
clientgen
clientgen
Ant タスクは、クライアント アプリケーションが WebLogic Web サービスと非 WebLogic Web サービスの両方の呼び出しに使用できるクライアント コンポーネント ファイルを既存の WSDL ファイルから生成します。クライアント コンポーネント ファイルには以下のものがあります。
呼び出し対象となる特定の Web サービスに対する JAX-RPC Stub
および Service
インタフェースの Java ソース コード。
WSDL ファイルで指定されたユーザ定義 XML スキーマ データ型の Java ソース コード。
Java のユーザ定義のデータ型と、WSDL ファイル内で指定されたそのデータ型に対応する XML スキーマの型の間のマッピングに関する情報を格納する JAX-RPC マッピング デプロイメント記述子ファイル。
WSDL ファイルのクライアントサイドのコピー。
以下の 2 種類のクライアント アプリケーションが、Web サービスを呼び出すために clientgen
の生成されたアーティファクトを使用します。
J2EE クライアント コンテナを使用しないスタンドアロン Java クライアント。
EJB、JSP、Web サービスなど、J2EE クライアント コンテナを使用する J2EE クライアント。
Taskdef のクラス名
<taskdef name="clientgen"
classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
例
<taskdef name="clientgen"
classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
...
<target name="build_client">
<clientgen
wsdl="http://example.com/myapp/myservice.wsdl"
destDir="/output/clientclasses"
packageName="myapp.myservice.client"
serviceName="StockQuoteService" />
<javac .../>
</target>
サンプルの build_client
ターゲットが実行されるときに、clientgen
は、wsdl
属性で指定した WSDL ファイルを使用して、serviceName
属性で指定した Web サービスの呼び出しに必要なクライアントサイドのアーティファクトをすべて生成します。clientgen
Ant タスクは、すべてのアーティファクトを /output/clientclasses
ディレクトリに生成します。生成された Java コードは、すべて myapp.myservice.client
パッケージにあります。clientgen
が終了すると、javac
Ant タスクは、clientgen
が生成した Java コード、および生成されたアーティファクトを使用し、ユーザのビジネス コードを格納する独自のクライアント アプリケーションの Java コードをコンパイルします。
属性
次の表では、clientgen
Ant タスクの属性について説明します。
表 A-2 clientgen Ant タスクの属性
属性
|
解説
|
データ型
|
必須/省略可能
|
destDir
|
clientgen Ant タスクがクライアント ソース コード、WSDL ファイル、クライアント デプロイメント記述子ファイルを生成するディレクトリ。
この属性は、任意のディレクトリに設定できる。ただし、EJB、JSP、または別の Web サービスから Web サービスを呼び出すクライアント コンポーネント ファイルを生成する場合、この属性は通常、共有クラスを保持する J2EE コンポーネントのディレクトリ (たとえば、EJB の場合は META-INF 、Web アプリケーションの場合は WEB-INF/classes 、エンタープライズ アプリケーションの場合は APP-INF/classes ) に設定する。スタンドアロン クライアントから Web サービスを呼び出す場合は、ユーザのクライアント アプリケーション コードと同じソース コード ディレクトリ階層内にクライアント コンポーネント ファイルを生成できる。
|
文字列
|
必須
|
generatePolicyMethods
|
clientgen Ant タスクが、ポリシーをロードするメソッドを、生成された JAX-RPC スタブに格納するかどうかを指定する。これらのメソッドにより、クライアント アプリケーションはローカル ポリシー文をロードできる。
True を指定した場合、get XXX SoapPort() (XXX は Web サービス名) という 4 種類のメソッドが、JAX-RPC Service インタフェースの拡張機能として、生成されたクライアント スタブに追加される。クライアント アプリケーションは、これらのメソッドを使用すると、Web サービス自体でデプロイされたポリシー文を適用する代わりに、ローカル ポリシー文をロードして適用できる。クライアント アプリケーションは、着信 SOAP メッセージ、発信 SOAP メッセージ、または発着信双方の SOAP メッセージにローカル ポリシー文を適用するか、ローカル ポリシーを InputStream からロードするか URI からロードするかを指定できる。
この属性の有効な値は、True または False 。デフォルト値は False で、追加メソッドは生成されないことを示す。
詳細については、「クライアントサイド セキュリティ WS-Policy ファイルの使用」を参照。
|
ブール
|
省略可能
|
generateAsyncMethods
|
clientgen Ant タスクが、クライアント アプリケーションが Web サービスのオペレーションを非同期的に呼び出すために使用できるメソッドを、生成された JAX-RPC スタブに格納するかどうかを指定する。
たとえば、True (デフォルト値) を指定し、WSDL に getQuote という Web サービス オペレーションがある場合、clientgen Ant タスクは、getQuoteAsync というメソッドを JAX-RPC スタブに生成する。クライアント アプリケーションは、元の getQuote メソッドの代わりにこのメソッドを呼び出す。この非同期的な種類のオペレーションには、クライアント アプリケーションが非同期プロパティやコンテキスト変数などを設定するための追加パラメータ (weblogic.wsee.async.AsyncPreCallContext データ型) も含まれる。
この機能の詳細と手順については、「非同期の要求と応答を使用した Web サービスの呼び出し」を参照。
注意 : Web サービス オペレーションが一方向としてマークされている場合、generateAsyncMethods 属性を True に設定しても、clientgen Ant タスクは非同期的な種類の JAX-RPC スタブを生成しない。
この属性の有効な値は、True または False 。デフォルト値は True で、非同期メソッドが生成されることを示す。
|
ブール
|
省略可能
|
overwrite
|
Ant タスクで生成されたクライアント コンポーネント ファイル (ソース コード、WSDL、デプロイメント記述子ファイル) がすでに存在する場合、それを上書きするかどうかを指定する。
True を指定すると、常に新しいアーティファクトが生成され、既存のアーティファクトがすべて上書きされる。
False を指定すると、既存のアーティファクトのタイムスタンプに基づき、変更のあったアーティファクトだけが上書きされる。
この属性の有効な値は、True または False 。デフォルト値は True 。
|
ブール
|
省略可能
|
packageName
|
生成された JAX-RPC クライアント インタフェースとスタブ ファイルをパッケージ化するパッケージ名。
この属性を指定しない場合、clientgen Ant タスクは、WSDL ファイルの targetNamespace に基づくパッケージ名を持つ Java ファイルを生成する。たとえば、targetNamespace が http://example.org の場合、パッケージには org.example またはそれに近い名前などが付けられる。パッケージ名を Ant タスクで自動的に付けるのではなく、任意に指定する場合は、この属性を指定する必要がある。
この属性を指定しなかった場合、パッケージ名にはすべて小文字を使用することを推奨。
|
文字列
|
省略可能
|
serviceName
|
対応するクライアント コンポーネント ファイルが生成される WSDL ファイル内の Web サービスの名前。
Web サービス名は WSDL ファイル内の <service> 要素に一致する。
この名前は、生成された JAX-RPC マッピング ファイル、および WSDL ファイルのクライアント サイドのコピーで使用される。たとえば、serviceName を CuteService に設定した場合、JAX-RPC マッピング ファイルは cuteService_java_wsdl_mapping.xml 、WSDL のクライアントサイドのコピーは CuteService_saved_wsdl.wsdl となる。
|
文字列
|
この属性は、WSDL ファイルに複数の <service> 要素が格納されている場合にのみ必須。
この属性を指定しておらず、1 つまたは複数の <service> 要素が WSDL ファイルに格納されている場合、Ant タスクはエラーを返す。
|
wsdl
|
クライアント コンポーネント ファイルの生成が必要な (WebLogic または非 WebLogic) Web サービスを記述する WSDL の完全パス名または URL。
クライアント JAR ファイル内の生成されたスタブ ファクトリ クラスは、デフォルト コンストラクタ内のこの属性の値を使用する。
|
文字列
|
必須
|
autoDetectWrapped
|
clientgen Ant タスクでドキュメントリテラル Web サービスのパラメータと戻り値の型が wrapped か bare かを判別するかどうかを指定する。
WSDL ファイルを解析して JAX-RPC スタブを作成する場合、clientgen Ant タスクは、XML スキーマ要素の名前やオペレーションとパラメータの名前などに基づいて、ドキュメントリテラル Web サービスが wrapped パラメータを使用するか bare パラメータを使用するかを判別し、戻り値の型を識別する。これらのコンポーネント名がどのように照合されるかによって、clientgen Ant タスクは、パラメータが wrapped か bare かを推定する。ただし、Ant タスクでパラメータの型が常に bare と推定されるように指定することもできる。この場合、autoDetectWrapped 属性を False に設定する。
この属性の有効な値は、True または False 。デフォルト値は True 。
|
ブール
|
省略可能
|
handlerChainFile
|
クライアント アプリケーションが Web サービスを呼び出すときに実行されるクライアントサイド SOAP メッセージ ハンドラを記述する XML ファイルの名前を指定する。
ファイルで指定された各ハンドラは、以下のタイミングで 2 回実行される。
この clientgen 属性を指定しなかった場合、クライアントサイドのハンドラは CLASSPATH にあっても実行されない。
クライアントサイドの SOAP メッセージ ハンドラの作成の詳細および例については、「クライアントサイド SOAP メッセージ ハンドラの作成と使用」を参照。
|
文字列
|
省略可能
|
jaxRPCWrappedArrayStyle
|
clientgen Ant タスクが、WSDL ファイルの XML スキーマのデータ型と同じ Java を生成しているときに、maxOccurs 属性が unbounded に指定された単一の要素を持つ単一の親シーケンスを格納した XML 複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前の Java 構造体をデフォルトで生成する。代わりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyle を False に設定する。
この属性の有効な値は、True または False 。デフォルト値は True 。
|
ブール
|
省略可能
|
classpath
|
CLASSPATH への追加属性。この属性を使用すると、Java クラスを格納している JAR ファイルまたはディレクトリを、JWS ファイルのコンパイルに使用する CLASSPATH に追加できる。
|
文字列
|
省略可能
|
classpathref
|
CLASSPATH への追加属性。ただし、build.xml ファイルの別の場所で定義されているパスへの参照として指定する。
|
文字列
|
省略可能
|
jwsc
jwsc
Ant タスクは、標準 (JSR-181) JWS アノテーションと WebLogic 固有の JWS アノテーションの両方を格納する Java Web サービス (JWS) ファイルを入力として取り、WebLogic Web サービスの作成に必要なアーティファクトをすべて生成します。生成されるアーティファクトには、以下のものがあります。
サービス エンドポイント インタフェース (JWS_ClassName
PortType.java
。JWS_ClassName
は JWS クラス) など、標準の JSR-921 Web サービスを実装する Java ソース ファイル。
必要な全デプロイメント記述子。標準の webservices.xml
と JAX-RPC マッピング ファイルに加え、jwsc
Ant タスクでは、WebLogic 固有の Web サービス デプロイメント記述子 (weblogic-webservices.xml
) も生成します。
パブリック オペレーションとして公開されるように指定された JWS ファイルのメソッドのパラメータまたは戻り値の型として使用する Java のユーザ定義型の XML スキーマ表現。
Web サービスの内容を外部に公開する形で記述した WSDL ファイル。
すべてのアーティファクトを生成すると、jwsc
Ant タスクは、Java ファイルおよび JWS ファイルをコンパイルします。次に、コンパイルされたクラスおよび生成されたアーティファクトを、デプロイ可能な JAR アーカイブ ファイルにパッケージ化します。最後に、その JAR ファイルを格納する、展開されたエンタープライズ アプリケーション ディレクトリを作成します。このエンタープライズ アプリケーションを WebLogic Server にデプロイします。既存のエンタープライズ アプリケーションを送り先のディレクトリとして jwsc
に指定した場合、この Ant タスクは、既存の application.xml
ファイルを新しい Web サービス情報で書き換えて更新します。
注意 : jwsc
Ant タスクは通常、指定した JWS ファイルから Java クラスを実装した Web サービスを生成し、それを Web アプリケーションの WAR ファイルにパッケージ化します。ただし、以下の場合、ステートレス セッション EJB を実装した Web サービスが作成され、EJB JAR ファイルにパッケージ化されます。
JWS ファイルが weblogic.jws.Conversation
、weblogic.jws.Conversational
、weblogic.jws.ServiceClient
のいずれかの JWS アノテーションを指定している場合。JWS ファイルが EJBGen アノテーションを使用している場合。JWS ファイルが明示的に javax.ejb.SessionBean
. を実装している場合。
Java クラスを実装した Web サービスの場合も、ステートレス セッション EJB を実装した Web サービスの場合も、呼び出し方法や使い方はまったく同じなので、この実際の詳細は通常、プログラマにとっては重要ではありません。この節では、Web サービス アーカイブを更新し、WAR か EJB JAR かを識別する必要がある場合にのみ、この違いについて触れます。
jwsc
Ant タスクが <
jws
>
子要素を使用してコンパイルする JWS ファイルを指定します。<jws>
要素には、Web サービスの呼び出しに使用する転送方法 (HTTP/S または JMS) を指定するための子要素 (省略可能) が 3 種類あります。
jwsc
Ant タスクの完全な使用例については、「ユーザ定義のデータ型を使用する Web サービスの作成」を参照してください。
Taskdef のクラス名
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
例
以下の例では、jwsc
Ant タスクの使い方を示します。ここでは、build.xml
Ant ファイルで、Web サービスを繰り返し開発する際に使用する build-service
ターゲットに、このタスクを指定します。その他、WebLogic Web サービスを繰り返し開発する際に役立つ clean
、deploy
、client
、run
などのさまざまなターゲットを格納した build.xml
ファイルの完全な例については、「一般的な Web サービスの使用例とサンプル」および「WebLogic Web サービスの反復的な開発」を参照してください。
以下のサンプルでは、非常に単純な jwsc
の使い方を示します。
<target name="build-service">
<jwsc
srcdir="src"
destdir="output/TestEar">
<jws file="examples/webservices/test/TestServiceImpl.java" />
</jwsc>
</target>
この例では、TestServiceImpl.java
という JWS ファイルが build.xml
ファイルを格納したディレクトリの src/examples/webservices/test
サブディレクトリにあります。jwsc
Ant タスクは、Web サービスのアーティファクトを output/TestEar
サブディレクトリに生成します。jwsc
Ant タスクでは、Web サービス JAR ファイルに加え、エンタープライズ アプリケーションを記述した application.xml
ファイルも output/TestEar/META-INF
ディレクトリに生成されます。
以下のサンプルでは、上記の例よりも複雑な jwsc
の使い方を示します。
<path id="add.class.path">
<pathelement path="${myclasses-dir}"/>
<pathelement path="${java.class.path}"/>
</path>
...
<target name="build-service2">
<jwsc
srcdir="src" destdir="output/TestEar"
verbose="on" debug="on"
keepGenerated="yes"
classpathref="add.class.path">
<jws file="examples/webservices/test/TestServiceImpl.java" />
<jws file="examples/webservices/test/AnotherTestServiceImpl.java"/>
<jws file="examples/webservices/test/SecondTestServiceImpl.java" />
</jwsc>
</target>
この例では、デバッグと冗長出力を有効にしており、jwsc
が出力ディレクトリに既存の一時ファイルを生成しないように指定しています。また、classpathref
属性による標準 CLASSPATH への追加方法が示されています。ここでは、build.xml
ファイルの別の場所で標準の Ant <path>
ターゲットに指定されている add.class.path
というパスを参照することで、CLASSPATH に追加しています。
さらに、複数の JWS ファイルが指定されています。これにより、個別の JAR ファイルに分割してパッケージ化された Web サービスが、同じエンタープライズ アプリケーションの一部としてデプロイされます。
以下の例では、Web サービスの呼び出しに使用する転送形式の指定方法を示します。
<target name="build-service3">
<jwsc
srcdir="src"
destdir="output/TestEar">
<jws file="examples/webservices/test/TestServiceImpl.java">
<WLHttpTransport
contextPath="TestService" serviceUri="TestService"
portName="TestServicePort1"/>
</jws>
</jwsc>
</target>
この例では、Web サービスの呼び出しに HTTP 転送形式を使用するように指定しています。
jwsc Ant タスクの属性と子要素
jwsc
Ant タスクには、さまざまな属性と <
jws
>
という子要素があります。<jws>
要素には、<
WLHttpTransport
>
、<
WLHttpsTransport
>
、<
WLJMSTransport
>
という 3 種類の子要素 (省略可能) があります。転送要素の使用に関する概要については、「転送の子要素」を参照してください。
次の図は、jwsc
Ant タスクの階層を示しています。
図 A-1 jwsc Ant タスクの要素階層
次の表では、jwsc
Ant タスクの主な属性について説明します。
表 A-3 jwsc Ant タスクの属性
属性
|
解説
|
必須/省略可能
|
destdir
|
コンパイルした JWS ファイル、XML スキーマ、WSDL、生成されたデプロイメント記述子ファイルを含む、JAR ファイルまたは WAR ファイルにパッケージ化された全ファイルを格納するディレクトリの絶対パス名。
jwsc Ant タスクは、指定したディレクトリに、展開されたエンタープライズ アプリケーションを作成する。または、既存のアプリケーション ディレクトリを指定した場合は、アプリケーションを更新する。jwsc タスクは、Web サービスを実装する JAR ファイルまたは WAR ファイルをこのディレクトリに生成する他、META-INF ディレクトリの application.xml ファイルなどの必要なファイルを生成する。jwsc Ant タスクは、既存の application.xml ファイルがある場合はそれを更新し、既存のファイルがない場合は新たに作成する。別の application.xml をデフォルトから指定するには、applicationXML 属性を使用する。
|
必須
|
keepGenerated
|
Ant タスクで生成された Java ソース ファイルおよびアーティファクトがすでに存在する場合、それを再生成するかどうかを指定する。
no を指定すると、新しい Java ソース ファイルとアーティファクトが常に生成され、既存のアーティファクトがすべて上書きされる。
yes を指定すると、既存のアーティファクトのタイムスタンプに基づき、変更のあったアーティファクトだけが再生成される。
この属性の有効な値は、yes または no 。デフォルト値は no 。
|
省略可能
|
sourcepath
|
パラメータとして使用される JavaBean やユーザ定義の例外など、JWS ファイルで参照される Java ファイルを格納する最上位ディレクトリの絶対パス名。Java ファイルは、そのパッケージ名に対応する sourcepath ディレクトリのサブディレクトリ内にある。sourcepath パス名は、絶対パスでも相対パスでも構わない。相対パスの場合は、Ant build.xml ファイルを格納するディレクトリを基準にする。
たとえば、sourcepath が /src で、JWS ファイルが webservices.financial パッケージ内の MyType.java という JavaBean を参照している場合、MyType.java Java ファイルは /src/webservices/financial ディレクトリに格納されている。
この属性のデフォルト値は srcdir 属性の値。つまり、デフォルトでは、JWS ファイルおよび JWS ファイルで参照されるオブジェクトは同じパッケージ内にある。デフォルトではない場合は、それに応じた sourcepath を指定する必要がある。
|
省略可能
|
enableAsyncService
|
Web サービスが、WebLogic Web サービスの非同期機能 (信頼性のある Web サービス メッセージング、非同期要求および応答、バッファリング、会話) のいずれか 1 つまたは複数を使用しているかどうかを指定する。
信頼性のある Web サービス メッセージングの場合、信頼性のある Web サービス、およびその操作を確実に呼び出す Web サービスの双方に対して、この属性が有効になっていることを確認する必要がある。その他の機能 (会話、非同期要求および応答、およびバッファリング) の場合は、クライアント Web サービスに対してのみこの属性を有効にする必要がある。
この属性が true (デフォルト値) に設定されている場合、WebLogic Server は、非同期 Web サービス機能を処理する内部モジュールを自動的にデプロイする。したがって、Web サービスでこの機能のいずれも使用しない場合は、WebLogic Server が不要な内部モジュールをデプロイしてリソースを無駄にしないように、この属性を false に設定することを考慮する。
この属性の有効な値は、true および false 。デフォルト値は true 。
|
省略可能
|
verbose
|
デバックを目的とした冗長出力を有効にする。
この属性の有効な値は、on または off 。デフォルト値は off で、冗長出力は無効。
|
省略可能
|
srcdir
|
コンパイルする JWS ファイル (<jws> 子要素の file 属性で指定) を格納している最上位ディレクトリの絶対パス。JWS ファイルは、そのパッケージ名に対応する srcdir ディレクトリのサブディレクトリ内にある。srcdir パス名は、絶対パスでも相対パスでも構わない。相対パスの場合は、Ant build.xml ファイルを格納するディレクトリを基準にする。
たとえば、srcdir が /src で、MyService.java という JWS ファイルが webservices.financial パッケージ内にある場合、MyService.java JWS ファイルは /src/webservices/financial ディレクトリに格納されている。
|
必須
|
classpath
|
CLASSPATH への追加属性。この属性を使用すると、Java クラスを格納している JAR ファイルまたはディレクトリを、JWS ファイルのコンパイルに使用する CLASSPATH に追加できる。
|
省略可能
|
classpathref
|
CLASSPATH への追加属性。ただし、build.xml ファイルの別の場所で定義されているパスへの参照として指定する。
|
省略可能
|
sourcepathref
|
sourcepath への追加属性。ただし、build.xml ファイルの別の場所で定義されているパスへの参照として指定する。
|
省略可能
|
nowarn
|
コンパイラで警告メッセージが出力されるかどうかを指定する。
この属性の有効な値は、off または on 。デフォルト値は off で、メッセージは出力される。
|
省略可能
|
debug
|
jwsc Ant タスクによる JWS ファイルのコンパイル時に、デバッグ情報を出力するかどうかを指定する。
この属性の有効な値は、on または off 。デフォルト値は off 。
|
省略可能
|
optimize
|
JWS ファイルのコンパイル時に最適化を有効にするかどうかを指定する。
この属性の有効な値は、on または off 。デフォルト値は off 。
|
省略可能
|
includeAntRuntime
|
CLASSPATH に Ant 実行時ライブラリを含めるかどうかを指定する。
この属性の有効な値は、yes または no 。デフォルト値は yes 。
|
省略可能
|
includeJavaRuntime
|
Ant タスクを実行する Java 仮想マシンのデフォルト実行時ライブラリを CLASSPATH に含めるかどうかを指定する。
この属性の有効な値は、yes または no 。デフォルト値は no 。
|
省略可能
|
fork
|
JDK コンパイラを使用して外部から jwsc Ant タスクを実行するかどうかを指定する。
この属性の有効な値は、yes と no 。デフォルト値は no 。
|
省略可能
|
failonerror
|
エラーが発生しても JWS ファイルのコンパイルを実行するかどうかを指定する。
この属性の有効な値は、true および false 。デフォルト値は true 。
|
省略可能
|
tempdir
|
jwsc で使用する一時ファイルを格納するディレクトリの名前を指定する。
この属性は、特に Microsoft Windows オペレーティング システムで、長すぎるパス名のために JWS ファイルのコンパイルが失敗する場合に役立つ。
この属性のデフォルト値は destdir 属性の値。
|
省略可能
|
deprecation
|
JWS ファイルおよび生成された Java クラスの双方で非推奨のクラスに関する情報を、JWS ファイルのコンパイル時に有効にするかどうかを指定する。
この属性の有効な値は、on と off 。デフォルト値は off 。
|
省略可能
|
applicationXml
|
エンタープライズ アプリケーションの application.xml デプロイメント記述子の完全な名前および絶対パスを指定する。既存のファイルを指定した場合、jwsc Ant タスクは、Web サービス情報を含めるようにそのファイルを更新する。ファイルが存在しない場合、jwsc によってファイルが作成される。jwsc Ant タスクは、対応する weblogic-application.xml ファイルも同じディレクトリで作成または更新する。
この属性を指定しなかった場合、jwsc は、destDir /META-INF/application.xml (destDir は jwsc 属性) ファイルを作成または更新する。
|
省略可能
|
srcEncoding
|
JWS ファイルまたはコンフィグレーション XML ファイルなどの入力ファイルの文字エンコーディングを指定する。文字エンコーディングの例としては、SHIFT-JIS や UTF-8 などがある。
この属性のデフォルト値は、JVM に対する文字エンコーディング セット。
|
省略可能
|
destEncoding
|
デプロイメント記述子または XML ファイルなどの出力ファイルの文字エンコーディングを指定する。文字エンコーディングの例としては、SHIFT-JIS や UTF-8 などがある。
この属性のデフォルト値は UTF-8。
|
省略可能
|
jws
jwsc
Ant タスクの <jws>
子要素では、特定の Web サービスを実装する JWS ファイルの名前を指定します。Ant タスクは、この Web サービス向けに Java コードとサポート アーティファクトを生成し、エンタープライズ アプリケーション内でデプロイ可能な JAR ファイルにパッケージ化します。
1 つ以上の <jws>
要素を指定する必要があります。この要素を複数指定した場合、jwsc
Ant タスクは、JWS ファイルごとに個別の Web サービスを生成します。それぞれの Web サービスは、個別の JAR ファイルにパッケージ化されます。
次の表では、jwsc
Ant タスクの <jws>
子要素の属性について説明します。
表 A-4 jwsc Ant タスクの <jws> 子要素の属性
属性
|
解説
|
必須/省略可能
|
file
|
コンパイルする JWS ファイルの名前。jwsc Ant タスクは、srcdir ディレクトリにあるファイルを検索する。
|
必須
|
explode
|
デプロイ可能な Web サービスを格納する生成済みの JAR ファイルを、展開ディレクトリ形式にするかどうかを指定する。
この属性の有効な値は、true または false 。デフォルト値は false で、生成された JAR ファイルは JAR にアーカイブされ、展開ディレクトリ形式にはならない。
|
省略可能
|
name
|
生成された JAR ファイル (explode 属性が true に設定されている場合は展開ディレクトリ) で、デプロイ可能な Web サービスを格納しているファイルの名前。実際の JAR アーカイブ ファイルが生成されると、ファイル名には .jar または .war という拡張子も付けられる (拡張子がどちらになるかは、jwsc が EJB クラス実装を生成したか Java クラス実装を生成したかで異なる)。
この属性のデフォルト値は、file 属性で指定した JWS ファイルの名前。
|
省略可能
|
includeSchemas
|
Web サービスの XMLBeans パラメータまたは戻り値を示す XML スキーマ ファイルの絶対パス。
複数の XML スキーマ ファイルを指定するには、カンマまたはセミコロンを区切り記号として使用する。
includeSchemas="po.xsd,customer.xsd"
この属性は、JWS ファイルが Web サービス オペレーションのパラメータまたは戻り値として明示的に XMLBean データ型を使用している場合にのみサポートされる。XMLBean データ型を使用していない場合、この属性を指定すると、jwsc Ant タスクはエラーを返す。
また、この属性は、SOAP バインディングが document-literal-bare の Web サービスでのみ使用可能。WebLogic Web サービスのデフォルト SOAP バインディングは document-literal-wrapped なので、対応する JWS ファイルには、以下の JWS アノテーションを指定する必要がある。
@SOAPBinding( style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL, parameterStyle=SOAPBinding.ParameterStyle.BARE)
XMLBeans の詳細については、http://www.beasys.co.jp/dev2dev/technologies/xmlbeans/index.html を参照。
|
XMLBean データ型をパラメータまたは戻り値として使用する場合は必須
|
compiledWsdl
|
既存の WSDL ファイルを基に wsdlc Ant タスクで生成された JAR ファイルの絶対パス名。JAR ファイルには、この WSDL に基づいて Web サービスを実装する JWS インタフェース ファイルが含まれる。また、Java 表現と XML 表現の間でパラメータと戻り値を変換するためのデータ バインディング アーティファクトも含まれる。WSDL の XML スキーマ セクションは、データの XML 表現を定義する。
まず wsdlc Ant タスクを使用して、生成された JWS インタフェースを実装する JWS ファイルとともに JAR ファイルを生成する「WSDL ファイルから開始する」ケースでのみ、この属性を使用する。JWS 実装クラスをビジネス ロジックで更新したら、jwsc Ant タスクを実行し、この更新した JWS 実装ファイルの file 属性を使用して、デプロイ可能な Web サービスを生成する。
最初から JWS ファイルを記述し、Web サービスを記述する WSDL ファイルが、WebLogic Web サービスによって実行時に生成される「Java から開始する」ケースでは、compiledWsdl 属性を使用しない。
|
「WSDL から開始する」ケースでのみ必須
|
wsdlOnly
|
この JWS ファイルに対して WSDL ファイルのみが生成されるように指定する。
注意 : デプロイメント記述子やサービス エンドポイント インタフェースなどの他のアーティファクトは生成されないが、Web サービス オペレーションのパラメータと戻り値のデータ型を記述する XML スキーマを WSDL に含める必要があるので、データ バインディング アーティファクトは生成される。
WSDL は、destDir ディレクトリに生成される。ファイル名は JWS_ClassName Service.wsdl (JWS_ClassName は JWS クラス名)。JWS_ClassNameService は、生成された WSDL ファイルで Web サービスの名前にもなる。
この属性の有効な値は、true または false 。デフォルト値は false で、WSDL ファイルだけでなく、すべてのアーティファクトが生成されることを示す。
|
省略可能
|
転送の子要素
JWS ファイルをプログラミングする際、クライアントが Web サービスを呼び出すのに使用する転送形式を指定するために、特に @weblogic.jws.WLHttpTransport
、@weblogic.jws.WLHttpsTransport
、または @weblogic.jws.WLJMSTransport
という形式のアノテーションを使用できます。JWS ファイルでは、いずれか 1 つのアノテーションのみを指定できます。ただし、JWS ファイルを記述している時点では、どの転送形式が JWS ファイルのニーズに適しているかを判別できない可能性があります。そのため、転送はビルド時に指定するのが最適な方法です。その際、<jws>
の子要素のうち、以下の転送の子要素のいずれかを指定します。
特定の JWS ファイルに対して、上記の転送要素のいずれか 1 つを指定できます。または、この値は指定しなくても構いません。jwsc
Ant タスクに対する転送要素のいずれかまたは JWS ファイルの転送アノテーションとして転送を指定しなかった場合、Web サービスのデフォルト URL は、WLHttpTransport
要素のデフォルト値に対応します。また、jwsc
に対して転送を指定すると、JWS ファイルの転送アノテーションがオーバーライドされます。
WLHttpTransport
WLHttpTransport
要素では、生成された WSDL のポート名に加え、HTTP 転送形式で Web サービスを呼び出すために使用するコンテキスト パスおよび URL のサービス URI セクションを指定します。
この要素を指定する際のガイドラインについては、「転送の子要素」を参照してください。
次の表では、<jws>
要素の <WLHttpTransport>
子要素の属性について説明します。
表 A-5 <jws> 要素の <WLHttpTransport> 子要素の属性
属性
|
解説
|
必須/省略可能
|
contextPath
|
Web サービスのコンテキスト ルート。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
http://hostname:7001/financial/GetQuote?WSDL
financial が、この Web サービスの contextPath に当たる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その contextPath のデフォルト値は HelloWorldImpl になる。
|
省略可能
|
serviceUri
|
URL の Web サービス URI 部分。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
http://hostname:7001/financial/GetQuote?WSDL
GetQuote が、この Web サービスの serviceUri に当たる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その serviceUri のデフォルト値は HelloWorldImpl になる。
|
省略可能
|
portName
|
生成された WSDL のポートの名前。この属性は、WSDL の <port> 要素の name 属性に対応している。
この属性のデフォルト値は、JWS ファイルの @javax.jws.WebService アノテーションに基づく。つまり、デフォルトの portName は、@WebService アノテーションの name 属性の値に SoapPort というテキストを付け加えた形になる。たとえば、@WebService.name が MyService に設定されている場合、デフォルトの portName は MyServiceSoapPort となる。
|
省略可能
|
WLHttpsTransport
WLHttpsTransport
要素では、生成された WSDL のポート名に加え、セキュリティで保護された HTTPS 転送形式で Web サービスを呼び出すために使用するコンテキスト パスおよび URL のサービス URI セクションを指定します。
この要素を指定する際のガイドラインについては、「転送の子要素」を参照してください。
次の表では、<jws>
要素の <WLHttpsTransport>
子要素の属性について説明します。
表 A-6 <jws> 要素の <WLHttpsTransport> 子要素の属性
属性
|
解説
|
必須/省略可能
|
contextPath
|
Web サービスのコンテキスト ルート。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
https://hostname:7001/financial/GetQuote?WSDL
financial が、この Web サービスの contextPath に当たる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その contextPath のデフォルト値は HelloWorldImpl になる。
|
省略可能
|
serviceUri
|
URL の Web サービス URI 部分。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
https://hostname:7001/financial/GetQuote?WSDL
GetQuote が、この Web サービスの serviceUri に当たる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その serviceUri のデフォルト値は HelloWorldImpl になる。
|
省略可能
|
portName
|
生成された WSDL のポートの名前。この属性は、WSDL の <port> 要素の name 属性に対応している。
この属性のデフォルト値は、JWS ファイルの @javax.jws.WebService アノテーションに基づく。つまり、デフォルトの portName は、@WebService アノテーションの name 属性の値に SoapPort というテキストを付け加えた形になる。たとえば、@WebService.name が MyService に設定されている場合、デフォルトの portName は MyServiceSoapPort となる。
|
省略可能
|
WLJMSTransport
WLJMSTransport
要素では、生成された WSDL のポート名に加え、JMS 転送形式で Web サービスを呼び出すために使用するコンテキスト パスおよび URL のサービス URI セクションを指定します。また、JMS 転送用にコンフィグレーション済みの JMS キュー名および接続ファクトリ名も指定します。
この要素を指定する際のガイドラインについては、「転送の子要素」を参照してください。
次の表では、<jws>
要素の <WLJMSTransport>
子要素の属性について説明します。
表 A-7 <jws> 要素の <WLJMSTransport> 子要素の属性
属性
|
解説
|
必須/省略可能
|
contextPath
|
Web サービスのコンテキスト ルート。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
http://hostname:7001/financial/GetQuote?WSDL
financial が、この Web サービスの contextPath に当たる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その contextPath のデフォルト値は HelloWorldImpl になる。
|
省略可能
|
serviceUri
|
URL の Web サービス URI 部分。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
http://hostname:7001/financial/GetQuote?WSDL
GetQuote が、この Web サービスの serviceUri に当たる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その serviceUri のデフォルト値は HelloWorldImpl になる。
|
省略可能
|
portName
|
生成された WSDL のポートの名前。この属性は、WSDL の <port> 要素の name 属性に対応している。
この属性のデフォルト値は、JWS ファイルの @javax.jws.WebService アノテーションに基づく。つまり、デフォルトの portName は、@WebService アノテーションの name 属性の値に SoapPort というテキストを付け加えた形になる。たとえば、@WebService.name が MyService に設定されている場合、デフォルトの portName は MyServiceSoapPort となる。
|
省略可能
|
queue
|
JMS 転送用にコンフィグレーション済みの JMS キューの JNDI 名。JMS 転送を使用する際の詳細については、「JMS 転送の使用」を参照。
この属性を指定しない場合のデフォルト値は weblogic.wsee.DefaultQueue 。その場合でも、Web サービスのデプロイ先となる WebLogic Server インスタンスで、この JMS キューを作成する必要がある。
|
省略可能
|
wsdlc
wsdlc
Ant タスクは、既存の WSDL ファイルを基に一連のアーティファクトを生成します。これらのアーティファクトをまとめて、WSDL ファイルで記述された Web サービスの部分的な Java 実装が提供されます。具体的には、この Ant タスクは以下のものを生成します。
WSDL ファイルで記述された Web サービスを実装する JWS インタフェース ファイル。インタフェースには、Web サービス オペレーションを実装する完全なメソッド シグネチャ、および Web サービスのその他の側面を実装する JWS アノテーション (@WebService
や @SOAPBinding
など) が含まれます。
wsdlc
Ant タスクは、WSDL ファイル内で最初に見つかった <service>
要素のアーティファクトを生成します。特定の WSDL <binding>
を指定するには、srcBindingName
属性を使用します。
警告 : JWS インタフェースは JAR ファイルに生成されます。いずれも更新する必要はありません。これをここで説明したのは、後で JWS 実装ファイルを Web サービスにコンパイルする際に jwsc
Ant タスクに対してこの JAR ファイルを指定する必要があるためです。
Web サービスのパラメータと戻り値の XML 表現と Java 表現を変換するために WebLogic Server が使用するデータ バインディング アーティファクト。データ型の XML スキーマは WSDL で指定され、Java 表現は wsdlc
Ant タスクで生成されます。
警告 : これらのアーティファクトは、JWS インタフェース ファイルとともに JAR ファイルに生成されます。いずれも更新する必要はありません。これをここで説明したのは、後で JWS 実装ファイルを Web サービスにコンパイルする際に jwsc
Ant タスクに対してこの JAR ファイルを指定する必要があるためです。
生成された JWS インタフェースの途中まで作成済みの実装を格納した JWS ファイル。
生成された JWS インタフェースの省略可能な Javadoc。
wsdlc
Ant タスクを実行 (通常は 1 回だけ実行) したら、メソッドを目的どおりに実行するためにそのメソッドに Java コードを追加して、生成された JWS 実装ファイルを更新します。wsdlc
Ant タスクは、WSDL ファイルを基に Web サービスの形式を認識していますが、その Web サービスをどのように実行するかについては認識していないので、最初は生成された JWS 実装ファイルにビジネス ロジックは含まれていません。
JWS 実装ファイルを記述するときに、JWS アノテーションを追加することもできます。ただし、以下の規則に従う必要があります。
JWS 実装ファイルに含めることができる標準 JSR-181 JWS アノテーションは、@WebService
、@HandlerChain
、@SOAPMessageHandler
、および @SOAPMessageHandlers
のみです。他の JWS-181 JWS アノテーションを指定した場合、JWS ファイルを Web サービスにコンパイルしようとすると、jwsc
Ant タスクはエラーを返します。
また、@WebService
アノテーションで指定できるのは、serviceName
属性と endpointInterface
属性のみです。まれに、WSDL ファイルに複数の <service>
要素が指定されていることがあります。その場合は、serviceName
属性を使用して、wsdlc
Ant タスクで使用していたものとは別の <service>
WSDL 要素を指定します。wsdlc
Ant タスクで生成された JWS インタフェースを指定するには、endpointInterface
属性を使用します。
WebLogic 固有の JWS アノテーションは任意のものを指定できます。
目的どおりに機能するように JWS ファイルを記述したら、jwsc
Ant タスクを繰り返し実行して、Web サービスの完全な Java 実装を生成します。jwsc
の compiledWsdl
属性を使用すると、JWS インタフェース ファイルとデータ バインディング アーティファクトを格納する wsdlc
Ant タスクで生成された JAR ファイルを指定できます。この属性を指定すると、jwsc
Ant タスクは、新しい WSDL ファイルを生成せず、JAR ファイル内の既存の WSDL ファイルを使用します。そのため、Web サービスをデプロイして、その WSDL を表示すると、デプロイされた WSDL は、ユーザが最初に開始した時点の WSDL とほとんど変わらないように見えます。
注意 : オリジナルの WSDL とデプロイされた WSDL の間の違いは、おそらく Web サービスのポートの <address>
要素の location
属性の値です。デプロイされた WSDL は、デプロイされた Web サービスの実際のホスト名と URI を指定します。これは、ほぼ間違いなくオリジナルの WSDL の値とは違います。この違いは、静的 WSDL を基に実際の Web サービスをデプロイする際に現れると予想されます。
jwsc
と組み合わせた wsdlc
Ant タスクの完全な使用例については、「WSDL ファイルからの Web サービスの作成」を参照してください。
Taskdef のクラス名
<taskdef name="wsdlc"
classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>
例
以下の Ant build.xml
ファイルの一部では、wsdlc
と jwsc
の 2 つの Ant タスクを組み合わせて WebLogic Web サービスをビルドする方法を示します。ビルド ファイルには、既存の WSDL ファイルに対して wsdlc
Ant タスクを実行する generate-from-wsdl
、および wsdlc
Ant タスクで生成されたアーティファクトからデプロイ可能な Web サービスをビルドするために jwsc
Ant タスクを実行する build-service
という 2 種類のターゲットが指定されています。
<taskdef name="wsdlc"
classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="generate-from-wsdl">
<wsdlc
srcWsdl="wsdl_files/TemperatureService.wsdl"
destJwsDir="output/compiledWsdl"
destImplDir="output/impl"
packageName="examples.webservices.wsdlc" />
</target>
<target name="build-service">
<jwsc
srcdir="src"
destdir="output/wsdlcEar">
<jws file="examples/webservices/wsdlc/TemperaturePortTypeImpl.java"
compiledWsdl="output/compiledWsdl/TemperatureService_wsdl.jar" />
</jwsc>
</target>
この例では、wsdlc
Ant タスクは、TemperatureService.wsdl
ファイルを入力として取り、JWS インタフェースとデータ バインディング アーティファクトが格納された JAR ファイルを output/compiledWsdl
ディレクトリに生成します。JAR ファイル名は TemperatureService_wsdl.jar
です。この Ant タスクでは、途中まで作成済みの JWS インタフェースの実装を格納した JWS ファイルを output/impl/examples/webservices/wsdlc
ディレクトリ (destImplDir
属性の値と、指定した packageName
に対応するディレクトリ階層を組み合わせたもの) に生成します。途中まで作成済みの JWS 実装ファイルの名前は、最初の <service>
要素に対応する WSDL ファイルの <portType>
要素の名前に基づきます。たとえば、portType の名前が TemperaturePortType
の場合、生成された JWS 実装ファイルは TemperaturePortTypeImpl.java
という名前になります。
wsdlc
を実行したら、途中まで作成済みの JWS 実装ファイルにビジネス ロジックを追加します。通常、この JWS ファイルを wsdlc
出力ディレクトリから、アプリケーションのソース コードを含む、より永続的なディレクトリに移動します。この例では、完全に記述された TemperaturePortTypeImpl.java
JWS ファイルは src/examples/webservices/wsdlc/
ディレクトリに移動しています。次に、jwsc
Ant タスクを実行し、この JWS ファイルを通常通りに指定します。ここで指定する必要がある唯一の追加属性が compiledWsdl
です。この属性は、上記の例で示すように wsdlc
Ant タスクで生成された JAR ファイルを指します。これは、JAR ファイルにコンパイルされているオリジナルの WSDL ファイルを使用するので、jwsc
Ant タスクで WSDL ファイルを生成しないことを示します。
属性
次の表では、wsdlc
Ant タスクの属性について説明します。
表 A-8 wsdlc Ant タスクの属性
属性
|
解説
|
データ型
|
必須/省略可能
|
srcWsdl
|
JWS インタフェースとデータ バインディング アーティファクトを格納する JAR ファイルの生成に使用する WSDL ファイルの名前。
WSDL ファイル名はパス名を含んでいる必要がある。このパス名は、絶対パスでも相対パスでも構わない。相対パスの場合は、Ant build.xml ファイルを格納するディレクトリを基準にする。
|
文字列
|
必須
|
srcBindingName
|
JWS インタフェース ファイルの生成元になる WSDL バインディングの名前。
wsdlc Ant タスクは、WSDL ファイル内で最初に見つかった <service> 要素に対して実行される。したがって、この <service> 要素に関連付けられている <binding> 要素が複数ある場合でも、srcBindingName 属性を指定するだけで済む。
|
文字列
|
WSDL ファイルに複数の <binding> 要素が格納されている場合のみ
|
packageName
|
生成された JWS インタフェースおよび実装ファイルの生成先となるパッケージ。
この属性を指定しない場合、wsdlc Ant タスクは、WSDL の targetNamespace に基づくパッケージ名を生成する。
|
文字列
|
省略可能
|
destJwsDir
|
JWS インタフェース ファイルおよびデータ バインディング アーティファクトを格納する JAR ファイルの生成先となるディレクトリ。
生成された JAR ファイルの名前は WSDLFile _wsdl.jar (WSDLFile は WSDL ファイルのルート名)。たとえば、file 属性に対して指定した WSDL ファイルの名前が MyService.wsdl の場合、生成された JAR ファイルは MyService_wsdl.jar となる。
|
文字列
|
必須
|
desImplDir
|
途中まで作成済みの JWS 実装ファイルの生成先となるディレクトリ。
生成された JWS ファイルは、生成された JWS インタフェース ファイル (JAR ファイル内に格納) を実装する。メソッドを目的どおりに実行するようにそのメソッドに Java コードを追加して、この JWS 実装ファイルを更新する。後で、jwsc Ant タスクに対して、この更新された JWS ファイルを指定し、デプロイ可能な Web サービスを生成する。
|
文字列
|
省略可能
|
destJavadocDir
|
JWS インタフェースを記述する Javadoc の生成先となるディレクトリ。
指定した Web サービスを実装する JWS インタフェース ファイルを格納した、生成された JAR ファイルを展開または更新する必要はないので、この生成された Javadoc からインタフェースに関する詳細を入手できる。途中まで作成済みの JWS 実装ファイルとともにこの Javadoc を使用すると、部分的に生成されている Web サービスにビジネス ロジックを追加できる。
|
文字列
|
省略可能
|
autoDetectWrapped
|
wsdlc Ant タスクでドキュメントリテラル Web サービスのパラメータと戻り値の型が wrapped か bare かを判別するかどうかを指定する。
WSDL ファイルを解析して、Web サービスを実装する部分的な JWS ファイルを作成する場合、wsdlc Ant タスクは、XML スキーマ要素の名前やオペレーションとパラメータの名前などに基づいて、ドキュメントリテラル Web サービスが wrapped パラメータを使用するか bare パラメータを使用するかを判別し、戻り値の型を識別する。これらのコンポーネント名がどのように照合されるかによって、wsdlc Ant タスクは、パラメータが wrapped か bare かを推定する。ただし、Ant タスクでパラメータの型が常に bare と推定されるように指定することもできる。この場合、autoDetectWrapped 属性を False に設定する。
この属性の有効な値は、True または False 。デフォルト値は True 。
|
ブール
|
省略可能
|
jaxRPCWrappedArrayStyle
|
wsdlc Ant タスクが、WSDL ファイルの XML スキーマのデータ型と同じ Java を生成しているときに、maxOccurs 属性が unbounded に指定された単一の要素を持つ単一の親シーケンスを格納した XML 複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前の Java 構造体をデフォルトで生成する。代わりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyle を False に設定する。
この属性の有効な値は、True または False 。デフォルト値は True 。
|
ブール
|
省略可能
|