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/ を参照してください。

注意 : Apache Jakarta の Web サイトでは、Ant の最新バージョンに関するオンライン ドキュメントのみを公開しています。この Ant は、WebLogic Server に同梱されているものとはバージョンが異なる可能性があります。WebLogic Server に同梱されている Ant のバージョンを判断するには、WebLogic 環境の設定後、次のコマンドを実行します。
prompt> ant -version 
注意 : 特定のバージョンの Ant のドキュメントを参照するには、http://archive.apache.org/dist/ant/binaries/ から Ant の zip ファイルをダウンロードして、ドキュメントを展開します。

Web サービス Ant タスクのリスト

次の表では、BEA が提供する Web サービス Ant タスクの概要について説明します。

表 A-1 WebLogic Web サービス Ant タスク
Ant タスク
説明
JAX-RPC サービス スタブなど、Web サービスの呼び出しに使用するクライアントサイド ファイルを生成する。
JWS アノテーション付きファイルを Web サービスにコンパイルする。JWS とは Java Web Service (Java Web サービス) のこと。
WSDL ファイルを基に Web サービスの部分的な実装を生成する。

Web サービス Ant タスクの使用

Ant タスクを使用するには、次の手順に従います。

  1. 環境を設定します。
  2. 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 はドメインの名前です。

  3. Web サービス Ant タスクの呼び出しを含む build.xml というファイルを作成します。
  4. 以下に、clean というターゲットを 1 つ指定した簡単な build.xml ファイルの例を示します。

    <project name="my-webservice">
      <target name="clean">
    <delete>
    <fileset dir="tmp" />
    </delete>
    </target>
    </project>

    この clean ターゲットにより、temp サブディレクトリ内のすべてのファイルが削除されます。

    build.xml ファイルで Ant タスクを指定する例は後の節で紹介します。

  5. 実行する WebLogic Web サービス Ant タスクごとに、<taskdef> 要素および <target> 要素を使用して、適切なタスク定義とターゲットを build.xml に追加します。次の例では、jwsc Ant タスクをビルド ファイルに追加する方法を示します。ここでは、分かりやすくするためにタスクの属性を省いています。
  6.   <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 タスクに任意の名前を付けることができます。このマニュアルでは、整合性を考慮して jwscclientgen、および wsdlc という名前に統一しています。

  7. build.xml ファイルと同じディレクトリで ant と入力し、ターゲットを指定して、Ant タスクまたは build.xml ファイルで指定されたタスクを実行します。
  8. 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 つの型 (たとえば MyReturnTypeMYRETURNTYPE) が指定されている場合、clientgen Ant タスクは、ユーザ定義データ型の Java 表現に対応する 2 つの別々の Java ソース ファイル セット (MyReturnType.javaMYRETURNTYPE.java) を適切に生成します。

ただし、それらのソース ファイルをそれぞれのクラス ファイルにコンパイルすると、Ant タスクを Microsoft Windows で実行する場合に問題が生じる場合があります。Windows では、大文字と小文字の区別をしないためです。つまり、Windows では、ファイル MyReturnType.javaMYRETURNTYPE.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 ファイルから生成します。クライアント コンポーネント ファイルには以下のものがあります。

以下の 2 種類のクライアント アプリケーションが、Web サービスを呼び出すために clientgen の生成されたアーティファクトを使用します。

通常、clientgendestDir 属性を使って、すべてのアーティファクトの生成先ディレクトリを指定してから、javac Ant タスクで生成された Java ファイルをコンパイルします。ただし、Ant タスクで Java ファイルをコンパイルし、特定の JAR ファイルにその他の生成アーティファクトと共にパッケージ化する場合、clientgendestFile 属性を使用できます。destFile および destDir の両方を指定することはできませんが、いずれか 1 つを指定する必要があります。

警告 : このリリースの WebLogic Server でサポートされている clientgen Ant タスクの完全修飾名は、weblogic.wsee.tools.anttasks.ClientGenTask です。これは、WebLogic Server バージョン 8.1 でサポートされている clientgen Ant タスクの完全修飾名 (weblogic.webservice.clientgen) とは異なります。
警告 : 8.1 の clientgen Ant タスクはこのリリースの WebLogic Server でもサポートされていますが、これは非推奨です。9.X WebLogic Web サービスを呼び出すクライアント アーティファクトを生成したい場合は、8.1 バージョンではなく 9.X バージョンの clientgen を使用するようにしてください。たとえば、8.1 Web サービスを 9.2 にアップグレードしたにもかかわらず、Ant スクリプトで完全修飾名を使用しているため、8.1 clientgen Ant タスクが明示的に呼び出されるようになっている場合は、それらの Ant スクリプトを変更して 9.X clientgen が呼び出されるようにする必要があります。

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 タスクで生成されたアーティファクトをコンパイルおよびパッケージ化する場合、次に示すように destDir ではなく、destFile 属性を指定します。

<clientgen
wsdl="http://example.com/myapp/myservice.wsdl"
destFile="/output/jarfiles/myclient.jar"
packageName="myapp.myservice.client"
serviceName="StockQuoteService" />

上の例の場合、build.xml ファイルで clientgen の後に javac Ant タスクを指定する必要はありません。これは、Java コードがすでにコンパイルされているためです。

通常は、Web にデプロイされ、HTTP を使用してアクセスされる、WSDL ファイル上で clientgen Ant タスクを実行します。しかし場合によっては、jwsc Ant タスクによって生成された WAR または JAR ファイルなどのアーカイブ ファイルにパッケージ化された静的な WSDL ファイル上で clientgen を実行することが必要になります。その場合は、以下の wsdl 属性の構文を使用する必要があります。

wsdl="jar:file:archive_file!WSDL_file"

ここで、archive_file はアーカイブ ファイルの完全な (または現在のディレクトリに対して相対的な) 名前、WSDL_file はアーカイブ ファイルのルート ディレクトリに対して相対的な WSDL ファイルの絶対パス名を表します。次に例を示します。

    <clientgen
wsdl="jar:file:output/myEAR/examples/webservices/simple/SimpleImpl.war!/WEB-INF/SimpleService.wsdl"
destDir="/output/clientclasses"
packageName="myapp.myservice.client"/>

上記の例では、clientgenSimpleService.wsdl という静的な WSDL ファイル上で実行する方法を示しています。この WSDL ファイルは SimpleImpl.war という WAR ファイルの WEB-INF ディレクトリ内にパッケージ化されています。WAR ファイルは build.xml ファイルが格納されているディレクトリの output/myEAR/examples/webservices/simple サブディレクトリにあります。

標準の Ant <sysproperty> のネストされた要素を使用して、有効な WebLogic Server ユーザ (Web サービスに対してアクセス制御が有効化されている場合) のユーザ名およびパスワード、信頼性のある証明書を格納するクライアントサイドのトラスト ストアの名前などの Java プロパティを設定できます。次に例を示します。

<clientgen
wsdl="http://example.com/myapp/mySecuredService.wsdl"
destDir="/output/clientclasses"
packageName="myapp.mysecuredservice.client"
serviceName="SecureStockQuoteService"
<sysproperty key="javax.net.ssl.trustStore"
value="/keystores/DemoTrust.jks"/>
<sysproperty key="weblogic.wsee.client.ssl.stricthostchecking"
value="false"/>
<sysproperty key="javax.xml.rpc.security.auth.username"
value="juliet"/>
<sysproperty key="javax.xml.rpc.security.auth.password"
value="secret"/>
</clientgen>

子要素

clientgen Ant タスクは、WebLogic 固有の子要素 <xsdConfig> を 1 つ持ちます。

<xsdConfig> 子要素を使用すると、1 つまたは複数の XMLBeans コンフィグレーション ファイル (通常、.xsdconfig で終わる) を指定できます。Web サービスで、パラメータまたは戻り値として Apache XMLBeans データ型を使用している場合、この要素を使います。

<xsdConfig> 要素は、標準の Ant <Fileset> 要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストについては、Apache Ant のマニュアルの「Fileset」を参照してください。

clientgen Ant タスクで設定可能な、標準の Ant javac タスクに関連する要素のリストについては、「clientgen に適用される標準の Ant 属性および要素」を参照してください。

属性

次の表では、clientgen Ant タスクの属性について説明します。clientgen Ant タスクで設定可能な、標準の Ant javac タスクに関連する属性のリストについては、「clientgen に適用される標準の Ant 属性および要素」を参照してください。

WebLogic 固有の clientgen 属性

表 A-2 clientgen Ant タスクの属性
属性
説明
データ型
必須/省略可能
autoDetectWrapped
clientgen Ant タスクでドキュメントリテラル Web サービスのパラメータと戻り値の型が wrappedbare かを判別するかどうかを指定する。
WSDL ファイルを解析して JAX-RPC スタブを作成する場合、clientgen Ant タスクは、XML スキーマ要素の名前やオペレーションとパラメータの名前などに基づいて、ドキュメントリテラル Web サービスが wrapped パラメータを使用するか bare パラメータを使用するかを判別し、戻り値の型を識別する。これらのコンポーネント名がどのように照合されるかによって、clientgen Ant タスクは、パラメータが wrapped か bare かを推定する。ただし、Ant タスクでパラメータの型が常に bare と推定されるように指定することもできる。この場合、autoDetectWrapped 属性を False に設定する。
この属性の有効な値は、True または False。デフォルト値は True
ブール
省略可能
destDir
clientgen Ant タスクがクライアント ソース コード、WSDL ファイル、クライアント デプロイメント記述子ファイルを生成するディレクトリ。
この属性は、任意のディレクトリに設定できる。ただし、EJB、JSP、または別の Web サービスから Web サービスを呼び出すクライアント コンポーネント ファイルを生成する場合、この属性は通常、共有クラスを保持する J2EE コンポーネントのディレクトリ (たとえば、EJB の場合は META-INF、Web アプリケーションの場合は WEB-INF/classes、エンタープライズ アプリケーションの場合は APP-INF/classes) に設定する。スタンドアロン クライアントから Web サービスを呼び出す場合は、ユーザのクライアント アプリケーション コードと同じソース コード ディレクトリ階層内にクライアント コンポーネント ファイルを生成できる。
文字列
destFile または destDir のいずれかの属性を指定する必要がある (両方は指定できない)。
destFile
clientgen タスクがクライアント ソース コード、コンパイル済みクラス、WSDL、およびクライアント デプロイメント記述子ファイルをパッケージ化する展開されたディレクトリまたは JAR ファイルの名前。この属性を指定すると、clientgen Ant タスクは、すべての Java コードもクラス ファイルにコンパイルする。
JAR ファイルを作成または更新するには、myclientjar.jar など、JAR ファイルの指定時に jar サフィックスを使用する。属性値が .jar サフィックスを持たない場合、clientgen タスクは、ディレクトリ名のことを指しているものと解釈する。
存在しない JAR ファイルまたはディレクトリを指定すると、clientgen タスクは新しい JAR ファイルまたはディレクトリを作成する。
文字列
destFile または destDir のいずれかの属性を指定する必要がある (両方は指定できない)。
failonerror
clientgen Ant タスクが、エラー発生時にも実行し続けるかどうかを指定する。
この属性の有効な値は、True または False。デフォルト値は True (エラーが発生しても、clientgen が実行し続けることを意味する)。

注意 : この属性が False に設定されていると、Java コンパイルで問題がある場合にのみ Ant タスクが中止される。他の問題が発生した場合は、Ant タスクは中止されない。

ブール
省略可能
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 で、非同期メソッドが生成されることを示す。
ブール
省略可能
generatePolicyMethods
clientgen Ant タスクが、WS-Policy のロード メソッドを、生成された JAX-RPC スタブに格納するかどうかを指定する。これらのメソッドにより、クライアント アプリケーションはローカル WS-Policy ファイルをロードできる。
True を指定した場合、getXXXSoapPort() (XXX は Web サービス名) という 4 種類のメソッドが、JAX-RPC Service インタフェースの拡張機能として、生成されたクライアント スタブに追加される。クライアント アプリケーションは、これらのメソッドを使用すると、Web サービス自体でデプロイされた WS-Policy ファイルを適用する代わりに、ローカル WS-Policy ファイルをロードして適用できる。クライアント アプリケーションは、着信 SOAP メッセージ、発信 SOAP メッセージ、または発着信双方の SOAP メッセージにローカル WS-Policy ファイルを適用するか、ローカル WS-Policy ファイルを InputStream からロードするか URI からロードするかを指定できる。
この属性の有効な値は、True または False。デフォルト値は False で、追加メソッドは生成されないことを示す
ブール
省略可能
handlerChainFile
クライアント アプリケーションが Web サービスを呼び出すときに実行されるクライアントサイド SOAP メッセージ ハンドラを記述する XML ファイルの名前を指定する。
ファイルで指定された各ハンドラは、以下のタイミングで 2 回実行される。
  • クライアント アプリケーションが Web サービスに SOAP リクエストを送信する直前
  • クライアント アプリケーションが Web サービスから SOAP 応答を受信した直後
この clientgen 属性を指定しなかった場合、クライアントサイドのハンドラは CLASSPATH にあっても実行されない。
クライアントサイドの SOAP メッセージ ハンドラの作成の詳細および例については、「クライアントサイド SOAP メッセージ ハンドラの作成と使用」を参照。
文字列
省略可能
includeGlobalTypes
clientgen Ant タスクで、Web サービス オペレーションで明示的に使用されているデータ型だけでなく、WSDL 内のすべての XML スキーマ データ型の Java 表現を生成するかどうかを指定する。
この属性の有効な値は、True または False。デフォルト値は False で、clientgen が、積極的に使用されている XML データ型のみの Java 表現を生成することを意味する。
ブール
省略可能
jaxRPCWrappedArrayStyle
clientgen Ant タスクが、WSDL ファイルの XML スキーマのデータ型と同じ Java を生成しているときに、maxOccurs 属性が unbounded に指定された単一の要素を持つ単一の親シーケンスを格納した XML 複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前の Java 構造体をデフォルトで生成する。代わりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleFalse に設定する。
この属性の有効な値は、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 ファイルのクライアント サイドのコピーで使用される。たとえば、serviceNameCuteService に設定した場合、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 ファイル内の生成されたスタブ ファクトリ クラスは、デフォルト コンストラクタ内のこの属性の値を使用する。
文字列
必須

clientgen に適用される標準の Ant 属性および要素

WebLogic 定義の clientgen 属性の他に、次に示す標準 javac 属性も定義できます。各属性の詳細については、Ant のマニュアルを参照してください。

標準の Ant <sysproperty> 子要素を使用して、クライアントサイドのアーティファクトの生成元となる Web サービスで必要となるプロパティを指定できます。たとえば、Web サービスが保護される場合、javax.xml.rpc.security.auth.username および javax.xml.rpc.security.auth.password プロパティを使用して、認証されたユーザ名およびパスワードを設定できます。<sysproperty> に関する詳細については、java Ant タスクの Ant のマニュアルを参照してください。

clientgen Ant タスクでは、次の標準 Ant 子要素も使用できます。

 


jwsc

jwsc Ant タスクは、標準 (JSR-181) JWS アノテーションと WebLogic 固有の JWS アノテーションの両方を格納する 1 つまたは複数の Java Web サービス (JWS) ファイルを入力として取り、WebLogic Web サービスの作成に必要なアーティファクトをすべて生成します。生成されるアーティファクトには、以下のものがあります。

すべてのアーティファクトを生成すると、jwsc Ant タスクは、Java ファイルおよび JWS ファイルをコンパイルします。次に、コンパイルされたクラスおよび生成されたアーティファクトを、デプロイ可能な Web アプリケーション WAR ファイルにパッケージ化します。最後に、その JAR ファイルを格納する、展開されたエンタープライズ アプリケーション ディレクトリを作成します。このエンタープライズ アプリケーションを WebLogic Server にデプロイします。

注意 : 標準的ではありませんが、JWS ファイルをコーディングして、javax.ejb.SessionBean を明示的に実装できます。詳細については、「ステートレス セッション EJB を実装すべき場合」を参照してください。この場合、jwsc は、EJB JAR ファイルに Web サービスをパッケージ化し、ejb-jar.xml および weblogic-ejb-jar.xml デプロイメント記述子ファイルなど、必要な EJB 関連のアーティファクトを生成します。ただし、これは標準的ではないので、この節では、jwsc は Web アプリケーション WAR ファイルに Web サービスをパッケージ化し、EJB 固有の情報は必要な場合にのみ呼び出されるものとします。

<jws> 要素を使用して jwsc Ant タスクがコンパイルする JWS ファイルまたはファイルを指定します。<jws> 要素が jwsc Ant タスクの直接の子である場合、jwsc は JWS ファイルごとに個別の WAR ファイルを生成します。すべての JWS ファイルを、サポート アーティファクトと共に、単一の WAR ファイル内にパッケージ化する場合、すべての <jws> 要素を単一の <module> 要素の下でグループ化します。WAR ファイルを 1 つにすることによって、WebLogic サーバのリソースが減り、Web サービスは、ユーザ定義のデータ型などの共通オブジェクトを共有できます。この方法を使うと、複数の Web サービスに対して同じコンテキスト パスを指定することもできます。各 JWS ファイルを個別の WAR ファイルにパッケージ化した場合、各サービスもユニークなコンテキスト パスを持つ必要があります。

<module> 要素を使用する場合、<jws> を使って各 JWS ファイルを個別にリストするよりは、<jwsfileset> 子要素を使うと、1 つまたは複数のディレクトリ内の JWS ファイルのリストを検索できます。

以下の節では、jwsc に関するその他の重要な情報について説明します。

この節で説明する内容の例については、「」を参照してください。

Web サービスの呼び出しに使用される転送形式の指定

JWS ファイルをプログラミングする際、クライアントが Web サービスを呼び出すのに使用する転送形式を指定するために、特に @weblogic.jws.WLHttpTransport または @weblogic.jws.WLJMSTransport という形式のアノテーションを使用できます。JWS ファイルでは、特定の転送アノテーションの 1 つのインスタンスのみを指定できます。たとえば、異なる 2 つの @WLHttpTransport アノテーションを指定することはできませんが、1 つの @WLHttpTransport と 1 つの @WLJmsTransport アノテーションを指定することはできます。ただし、JWS ファイルを記述している時点では、どの転送形式が JWS ファイルのニーズに適しているかを判別できない可能性があります。そのため、転送はビルド時に指定するのが一般的に最適な方法です。

<jws> 要素には、Web サービスの呼び出しに使用する転送方法 (HTTP/S または JMS) を指定するための、次に示す子要素 (省略可能) があります。

次のガイドラインで、jwsc Ant タスクの転送要素の使用方法について説明します。

WebLogic Web サービスの最終コンテキスト ルートの確定方法

WebLogic Web サービスのコンテキスト ルート (コンテキスト パスとも呼ばれる) は、さまざまな場所で指定できます。この節では、Web サービスのコンテキスト ルートが複数の場所で設定されている場合でも、コンフィグレーションに基づいて本当のコンテキスト ルートを確定する方法について説明します。

この説明では、Web サービスのコンテキスト ルートとは、Web サービス URL の host:port 部分の後にくる文字列のことを指します。WebLogic Web サービスのデプロイされた WSDL が次のようになっている場合を例にあげます。

http://hostname:7001/financial/GetQuote?WSDL

この場合、この Web サービスのコンテキスト ルートは financial です。

次に、コンテキスト ルートを指定できるすべての場所の優先順位を、重要度の高い順番で示します。

  1. <module> 要素と <jws>要素の contextPath 属性 (jwsc Ant タスクの直接の子として使用される場合)
  2. <jws><WLXXXTransport> 子要素の contextPath 属性
  3. @WLXXXTransport JWS アノテーションの contextPath 属性
  4. コンテキスト ルートのデフォルト値 (JWS ファイルの名前。ただし、拡張子は付かない)

たとえば、JWS ファイルで @WLHttpTransport アノテーションを指定し、その contextPath 属性を financial に設定したものと仮定します。この時、build.xml ファイルの jwsc Ant タスクにおいてその他の contextPath 属性を指定していない場合、Web サービスのコンテキスト ルートは financial になります。

ここで、その build.xml ファイルを更新し、<WLHttpTransport> 子要素を、JWS ファイルを指定する <jws> 要素に追加し、その contextPath 属性を finance に設定したものと仮定します。今度は、Web サービスのコンテキスト ルートは finance になります。ただし、次に <module> 要素の下で <jws> 要素とその子 <WLHttpTransport> 要素をグループ化し、その contextPath 属性を money に設定すると、Web サービスのコンテキスト ルートは money になります。

JWS ファイルまたは jwsc Ant タスクにおいて contextPath 属性を 1 つも指定しない場合、Web サービスのコンテキスト ルートはデフォルト値 (*.java 拡張子の付かない JWS ファイルの名前) になります。つまり、<jws><WLXXXTransport> 子要素または @WLXXXTransport アノテーションを指定していないが、複数の <jws> 要素を 1 つの <module> 要素の下でグループ化する場合、<module> contextPath 属性で、モジュール内のすべての Web サービスで使用される共通のコンテキスト ルートを指定する必要があることを意味します。これは、モジュール内のすべての Web サービスのデフォルト コンテキスト ルートがほとんどの場合異なるためです (実装している JWS ファイルの名前が異なることに起因する)。1 つの WAR ファイル内で異なるコンテキスト ルートを使用することはできません。

呼び出される Web サービスのクライアント アーティファクトの生成

コンパイルする 1 つまたは複数の JWS ファイル自体に、別の Web サービスの呼び出しが含まれる場合、jwsc<clientgen> 要素を使うと、呼び出す特定の Web サービスの JAX-RPC Stub および Service インタフェース実装などの必要なクライアント コンポーネント ファイルを生成およびコンパイルできます。これらのファイルは、Web サービスの呼び出しで利用できるように、生成される WAR ファイル内にパッケージ化されます。

既存のエンタープライズ アプリケーションまたは Web アプリケーションの更新

通常、jwsc は、destDir 属性で指定された場所にエンタープライズ アプリケーションの展開されたディレクトリを新規に作成します。ただし、既存のエンタープライズ アプリケーションを送り先のディレクトリとして指定した場合、jwsc は、既存の application.xml ファイルを新しい Web サービス情報で書き換えて更新します。

同様に、jwsc は通常、生成される Web アプリケーションを記述する新しい Web アプリケーションのデプロイメント記述子 (web.xml および weblogic.xml) を生成します。ただし、Web サービスの追加対象となる既存の Web アプリケーションがある場合、<module> 要素の <descriptor> 子要素を使用すると、既存の web.xml および weblogic.xml ファイルを指定できます。この場合、jwsc は、これらのファイルを destDir ディレクトリにコピーし、それらに新しい情報を追加します。その他の既存の Web アプリケーション ファイルを destDir ディレクトリにコピーするには、標準の Ant <fileset> 要素を使用します。

警告 : <descriptor> 要素で指定される既存の web.xml および weblogic.xml ファイルは、検証エラーで jwsc Ant タスクが失敗する DTD ベースではなく、XML スキーマ ベースである必要があります。

Taskdef のクラス名

<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />

以下の例では、jwsc Ant タスクの使い方を示します。ここでは、build.xml Ant ファイルで、Web サービスを繰り返し開発する際に使用する build-service ターゲットに、このタスクを指定します。その他、WebLogic Web サービスを繰り返し開発する際に役立つ cleandeployclientrun などのさまざまなターゲットを格納した build.xml ファイルの完全な例については、「一般的な Web サービスの使用例とサンプル」および「WebLogic Web サービスの反復的な開発」を参照してください。

以下のサンプルでは、非常に単純な jwsc の使い方を示します。

  <target name="build-service">
<jwsc
srcdir="src"
destdir="output/TestEar">
<jws file="examples/webservices/jwsc/TestServiceImpl.java" />
</jwsc>
</target>

上の例では、TestServiceImpl.java という JWS ファイルが build.xml ファイルを格納したディレクトリの src/examples/webservices/jwsc サブディレクトリにあります。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/jwsc/TestServiceImpl.java" />
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" />
</jwsc>
</target>

上の例では、デバッグと冗長出力を有効にしており、jwsc が出力ディレクトリに既存の一時ファイルを生成しないように指定しています。また、classpathref 属性による標準 CLASSPATH への追加方法が示されています。ここでは、build.xml ファイルの別の場所で標準の Ant <path> ターゲットに指定されている add.class.path というパスを参照することで、CLASSPATH に追加しています。

さらに、複数の JWS ファイルが指定されています。これにより、個別の Web アプリケーション WAR ファイルに分割してパッケージ化された Web サービスが、同じエンタープライズ アプリケーションの一部としてデプロイされます。3 つの Web サービスをすべて、単一の WAR ファイル内にパッケージ化する場合、<jws> 要素を単一の <module> 要素の下でグループ化します。次に例を示します。

 <target name="build-service3">
<jwsc
srcdir="src"
destdir="output/TestEar" >
<module contextPath="test" name="myJar" >
<jws file="examples/webservices/jwsc/TestServiceImpl.java" />
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" />
</module>
</jwsc>
</target>

上の例では、3 つの Web サービスすべてを myJAR.war という WAR ファイルにパッケージ化しています。このファイルは、エンタープライズ アプリケーションの展開されたディレクトリの最上位にあります。<module>contextPath 属性では、3 つの Web サービスのコンテキスト パスが test であることを指定しています。この値は、JWS ファイルの転送アノテーションで指定されているコンテキスト パスをオーバーライドします。

次の例では、すべての転送形式 (HTTP、HTTPS、JMS) を使用して Web サービスを呼び出す方法を示します。

 <target name="build-service4">
   <jwsc
srcdir="src"
destdir="output/TestEar">
<jws file="examples/webservices/jwsc/TestServiceImpl.java">
<WLHttpTransport
contextPath="TestService" serviceUri="TestService"
portName="TestServicePortHTTP"/>
<WLJmsTransport
contextPath="TestService" serviceUri="JMSTestService"
portName="TestServicePortJMS"
queue="JMSTransportQueue"/>
<clientgen
wsdl="http://examples.org/complex/ComplexService?WSDL"
serviceName="ComplexService"
packageName="examples.webservices.simple_client"/>
</jws>
</jwsc>
</target>

上の例では、<clientgen> 要素を使用し、http://examples.org/complex/ComplexService?WSDL によって記述される Web サービスのクライアントサイドのアーティファクト (JAX-RPC Stub および Service 実装など) を生成および格納する方法も示しています。これは、Web サービスの実装に加え、TestServiceImpl.java JWS ファイルも ComplexService Web サービスに対してクライアントとして機能し、ComplexService の処理を呼び出す Java コードを持つ必要があることを示しています。

次の例は、上の例とよく似ていますが、<jws> 要素を 1 つの <module> 要素の下でグループ化する点が異なります。

<target name="build-service5">
<jwsc
srcdir="src"
destdir="output/TestEar">
<module contextPath="TestService" >
<jws file="examples/webservices/jwsc/TestServiceImpl.java">
<WLHttpTransport
serviceUri="TestService"
portName="TestServicePort1"/>
</jws>
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" />
<clientgen
wsdl="http://examples.org/complex/ComplexService?WSDL"
serviceName="ComplexService"
packageName="examples.webservices.simple_client" />
</module>
</jwsc>
</target>

上の例では、個々の転送要素で各自の contextPath 属性を定義するのではなく、その親の <module> 要素で代わりに定義しています。これによって、jwsc による実際の処理が分かりやすくなり、メンテナンス性も向上します。また、<clientgen> 要素は <module> の子であって、前の例のように <jws> の子ではない点に注意してください。

次の例では、<jwsfileset> 要素の使用方法を示します。

  <target name="build-service6">
<jwsc
srcdir="src"
destdir="output/TestEar" >
<module contextPath="test" name="myJar" >
<jwsfileset srcdir="src/examples/webservices/jwsc" >
<include name="**/*.java" />
</jwsfileset>
</module>
</jwsc>
</target>

この例では、jwsc が、build.xml を格納するディレクトリを基準とする相対パス src/examples/webservices/jwsc 内の *.java ファイルを検索し、JWS アノテーションを格納する Java ファイルを確定してから、各ファイルをあたかも <module><jws> 子要素で指定されていたかのように処理します。<include> 要素は標準の Ant 要素です (標準の <FilesSet> タスクのマニュアルを参照)。

次の例では、jwsc Ant タスクで新しい Web アプリケーション デプロイメント記述子を作成せずに、既存の記述子に追加するように指定する方法を示します。

<target name="build-service7">
<jwsc
srcdir="src"
destdir="output/TestEar" >
<module contextPath="test" name="myJar" explode="true" >
<jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" />
<FileSet dir="webapp" >
<include name="**/*.java" />
</FileSet>
<descriptor file="webapp/WEB-INF/web.xml" />
<descriptor file="webapp/WEB-INF/weblogic.xml" />
</module>
</jwsc>
</target>

上の例では、<module>explode="true" 属性において、生成される Web アプリケーションが、デフォルトの WAR アーカイブ ファイルではなく、展開されたディレクトリ形式で格納されることを指定しています。<descriptor> 子要素では、jwsc が、build.xml ファイルを格納するディレクトリの webapp/WEB-INF サブディレクトリにある既存の web.xml および weblogic.xml ファイルを新しい Web アプリケーションの展開されたディレクトリにコピーし、指定した JWS ファイルの新しい Web サービス情報がこれらのファイルに追加される (jwsc で新しいファイルを作成しない) ことを指定しています。また、標準の Ant <FileSet> タスクを使用して追加のファイルを生成された WAR ファイルにコピーする方法も示しています。コピーされるファイルのいずれかが Java ファイルである場合、jwsc Ant タスクはそのファイルをコンパイルし、コンパイルしたクラスを Web アプリケーションの classes ディレクトリに配置します。

jwsc Ant タスクの属性と子要素

jwsc Ant タスクには、さまざまな属性と、<jws> および <module> という 2 つの子要素があります。<module> 要素は、1 つまたは複数の JWS ファイル (<jws> 要素でも指定される) を、単一のモジュール (WAR ファイル) にグループ化します。<module> を指定しない場合、各 JWS ファイルは、各自のモジュールまたは WAR ファイルにパッケージ化されます。

<jws> 要素 (<jwsc> または <module> の子要素として使用される場合) には、<WLHttpTransport><WLHttpsTransport>、および <WLJMSTransport> という 3 種類の子要素 (省略可能) があります。転送要素の使用に関する概要については、「Web サービスの呼び出しに使用される転送形式の指定」を参照してください。

<clientgen> および <descriptor> 要素は、<module> の子ではなく jwsc の子として使用される場合の <jws> か、実際の <module> 要素自体のいずれかの、モジュールを生成する要素の子としてのみ使用します。

<jwsfileset> 要素は、<module> の子としてのみ使用できます。

次の図は、jwsc Ant タスクの階層を示しています。

図 A-1 jwsc Ant タスクの要素階層

jwsc Ant タスクの要素階層 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素 icon 要素

次の表では、jwsc Ant タスクの属性について説明します。jwsc Ant タスクで設定可能な、標準の Ant javac タスクに関連する属性のリストについては、「jwsc に適用される標準の Ant 属性および子要素」を参照してください。

WebLogic 固有の jwsc 属性

表 A-3 jwsc Ant タスクの属性
属性
説明
必須/省略可能
applicationXml
エンタープライズ アプリケーションの application.xml デプロイメント記述子の完全な名前および絶対パスを指定する。既存のファイルを指定した場合、jwsc Ant タスクは、Web サービス情報を含めるようにそのファイルを更新する。ファイルが存在しない場合、jwsc によってファイルが作成される。jwsc Ant タスクは、対応する weblogic-application.xml ファイルも同じディレクトリで作成または更新する。
この属性を指定しなかった場合、jwsc は、destDir/META-INF/application.xml (destDirjwsc 属性) ファイルを作成または更新する。
省略可能
destdir
コンパイルした JWS ファイル、XML スキーマ、WSDL、生成されたデプロイメント記述子ファイルを含む、JAR ファイルまたは WAR ファイルにパッケージ化された全ファイルを格納するディレクトリの絶対パス名。

jwsc Ant タスクは、指定したディレクトリに、展開されたエンタープライズ アプリケーションを作成する。または、既存のアプリケーション ディレクトリを指定した場合は、アプリケーションを更新する。jwsc タスクは、Web サービスを実装する JAR ファイルまたは WAR ファイルをこのディレクトリに生成する他、META-INF ディレクトリの application.xml ファイルなどの必要なファイルを生成する。jwsc Ant タスクは、既存の application.xml ファイルがある場合はそれを更新し、既存のファイルがない場合は新たに作成する。別の application.xml をデフォルトから指定するには、applicationXML 属性を使用する。

必須
destEncoding
デプロイメント記述子または XML ファイルなどの出力ファイルの文字エンコーディングを指定する。文字エンコーディングの例としては、SHIFT-JIS や UTF-8 などがある。
この属性のデフォルト値は UTF-8。
省略可能
dotNetStyle
jwsc Ant タスクで .NET スタイルの Web サービスを生成するかどうかを指定する。
具体的には Web サービスの WSDL 内で、戻り値のパラメータに対応する <part> 要素の name 属性の値が、returnParameters ではなく、parameters であることを意味する。これは、document-literal-wrapped の Web サービスに対してのみ適用される。
この属性の有効な値は、true および false。デフォルト値は true で、.NET スタイルの Web サービスが生成されることを示す。
省略可能
enableAsyncService
Web サービスが、WebLogic Web サービスの非同期機能 (信頼性のある Web サービス メッセージング、非同期要求および応答、バッファリング、会話) のいずれか 1 つまたは複数を使用しているかどうかを指定する。
信頼性のある Web サービス メッセージングの場合、信頼性のある Web サービス、およびその操作を確実に呼び出す Web サービスの双方に対して、この属性が有効になっていることを確認する必要がある。その他の機能 (会話、非同期要求および応答、およびバッファリング) の場合は、クライアント Web サービスに対してのみこの属性を有効にする必要がある。
この属性が true (デフォルト値) に設定されている場合、WebLogic Server は、非同期 Web サービス機能を処理する内部モジュールを自動的にデプロイする。したがって、Web サービスでこの機能のいずれも使用しない場合は、WebLogic Server が不要な内部モジュールをデプロイしてリソースを無駄にしないように、この属性を false に設定することを考慮する。
この属性の有効な値は、true および false。デフォルト値は true

注意 : この属性は WebLogic Server 9.2 では非推奨。

省略可能
jaxRpcByteArrayStyle
この属性は、byte[] およびByte[] データ型を RPC/encoded Web サービス用の xsd:base64Binary 型にマッピングするために使用される。JAX-RPC ベースの Web サービスにのみ適用される。
この属性が true に設定されると、byte[] および Byte[] データ型用に生成されるマッピングが、JAX-RPC ガイドライン準拠になる。
この属性の有効な値は、true および false。デフォルト値は false
省略可能
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 を指定する必要がある。
省略可能
srcdir
コンパイルする JWS ファイル (<jws> 子要素の file 属性で指定) を格納している最上位ディレクトリの絶対パス。Jws ファイルは、そのパッケージ名に対応する srcdir ディレクトリのサブディレクトリ内にある。srcdir パス名は、絶対パスでも、Ant build.xml ファイルを含むディレクトリを基準とする相対パスでもよい。
たとえば、srcdir/src で、MyService.java という JWS ファイルが webservices.financial パッケージ内にある場合、MyService.java JWS ファイルは /src/webservices/financial ディレクトリに格納されている。
必須
srcEncoding
JWS ファイルまたはコンフィグレーション XML ファイルなどの入力ファイルの文字エンコーディングを指定する。文字エンコーディングの例としては、SHIFT-JIS や UTF-8 などがある。
この属性のデフォルト値は、JVM に対する文字エンコーディング セット。
省略可能

jwsc に適用される標準の Ant 属性および子要素

WebLogic 定義の jwsc 属性の他に、次に示す標準 javac 属性も定義できます。各属性の詳細については、Ant のマニュアルを参照してください。

jwsc Ant タスクでは、次の標準 Ant 子要素も使用できます。

jws

<jws> 要素では、特定の Web サービスを実装する JWS ファイルの名前を指定します。Ant タスクは、この Web サービス向けに Java コードとサポート アーティファクトを生成し、エンタープライズ アプリケーション内でデプロイ可能な WAR ファイルにパッケージ化します。

<jws> 要素は、jwsc 要素階層の次の 2 つのレベルで指定できます。

jwsc の子要素である <module> または <jws> のいずれかを指定する必要があります。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

jwsc<jws> 要素と一緒に、標準の Ant <FileSet> 子要素を使用できます。

次の表では、<jws> 要素の属性について説明します。この表では、<jws>jwsc の子である場合、<module> の子である場合、またはその両方の場合に属性が適用されるかどうかを説明しています。

表 A-4 jwsc Ant タスクの <jws> 要素の属性
属性
説明
必須/省略可能
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 属性を使用しない。
jwsc および <module> の両方の子として使用された場合に <jws> に適用される。
「WSDL から開始する」ケースでのみ必須
contextPath
Web サービスのコンテキスト ルート。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
http://hostname:7001/financial/GetQuote?WSDL
この場合、この Web サービスのコンテキスト ルートは financial
この属性の値は、JWS ファイルで設定されているその他のコンテキスト パスをオーバーライドする。これには、<jws> の転送関連の子要素の他に、転送関連の JWS アノテーションも含まれる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その contextPath のデフォルト値は HelloWorldImpl になる。
<jws>jwsc の直接の子である場合にのみ適用される。
省略可能
explode
デプロイ可能な Web サービスを格納する生成済みの WAR ファイルを、展開ディレクトリ形式にするかどうかを指定する。
この属性の有効な値は、true または false。デフォルト値は false で、jwsc は実際の WAR アーカイブ ファイルを生成し、展開されたディレクトリ形式にはならない。
<jws>jwsc の直接の子である場合にのみ適用される。
省略可能
file
コンパイルする JWS ファイルの名前。jwsc Ant タスクは、srcdir ディレクトリにあるファイルを検索する。
jwsc および <module> の両方の子として使用された場合に <jws> に適用される。
必須
includeSchemas
Web サービスの XMLBeans パラメータまたは戻り値が記述されている XML スキーマ ファイルの絶対パス。
複数の XML スキーマ ファイルを指定するには、カンマまたはセミコロンを区切り記号として使用する。

includeSchemas="po.xsd,customer.xsd"

この属性は、JWS ファイルが Web サービス オペレーションのパラメータまたは戻り値として明示的に XMLBeans データ型を使用している場合にのみサポートされる。XMLBeans データ型を使用していない場合、この属性を指定すると、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 を参照。
jwsc および <module> の両方の子として使用された場合に <jws> に適用される。

注意 : WebLogic Server 9.1 以降では、XMLBeans 1.X データ型 (つまり com.bea.xml.XmlObject の拡張) を WebLogic Web サービスのパラメータまたは戻り値の型として使用することは非推奨。新たに作成するアプリケーションでは、XMLBeans 2.x を使用する必要がある。

XMLBeans データ型をパラメータまたは戻り値として使用する場合は必須
name
生成された WAR ファイル (explode 属性が true に設定されている場合は展開ディレクトリ) で、デプロイ可能な Web サービスを格納しているファイルの名前。実際の JAR アーカイブ ファイルが生成されると、ファイル名には .war 拡張子が付けられる。
この属性のデフォルト値は、file 属性で指定した JWS ファイルの名前。
<jws>jwsc の直接の子である場合にのみ適用される。
省略可能
wsdlOnly
この JWS ファイルに対して WSDL ファイルのみが生成されるように指定する

注意 : デプロイメント記述子やサービス エンドポイント インタフェースなどの他のアーティファクトは生成されないが、Web サービス オペレーションのパラメータと戻り値のデータ型を記述する XML スキーマを WSDL に含める必要があるので、データ バインディング アーティファクトは生成される

WSDL は、destDir ディレクトリに生成される。ファイル名は JWS_ClassNameService.wsdl (JWS_ClassName は JWS クラス名)。JWS_ClassNameService は、生成された WSDL ファイルで Web サービスの名前にもなる。
この属性を true に設定し、explode 属性を false (これもデフォルト値) に設定すると、jwsc は explode 属性を無視し、常に展開形式で出力を生成する。
この属性の有効な値は、true または false。デフォルト値は false で、WSDL ファイルだけでなく、すべてのアーティファクトが生成されることを示す。
<jws>jwsc の子である場合にのみ適用される。
省略可能

module

<module> 要素は、生成されたコードおよびアーティファクトが単一の Web アプリケーション (WAR) ファイルにパッケージ化されるように、1 つまたは複数の <jws> 要素を一緒にグループ化します。<module> 要素は、メインの jwsc Ant タスクの子です。

同じバックエンド コンポーネント (Java クラスまたはステートレス セッション EJB) を使用して実装される Web サービスのみ、単一の <module> 要素の下でグループ化できます。異なるものを組み合わせることはできません。デフォルトでは、jwsc は Web サービスを常にプレーン Java クラスとして実装します (JWS ファイルに javax.ejb.SessionBean を明示的に実装している場合のみ例外)。これは、<module><jws> 子要素によって指定された JWS ファイルのいずれかが javax.ejb.SessionBean を実装する場合、その兄弟 <jws> ファイルでも javax.ejb.SessionBean を実装する必要があることを意味します。これが不可能な場合、すべての JWS ファイルを単一の <module> の下でグループ化することはできません。

モジュール内の Web サービスは、同じ contextPath を持つ必要がありますが、serviceURI はユニークである必要があります。共通の contextPath を設定するには、<module> 要素に対して属性として指定するか、各 Web サービスの <WLXXXTrasnsport> 要素または @WLXXXTransport アノテーションが contextPath 属性について同じ値を持つようにします。jwsc Ant タスクは、これらの値を確認し、ユニークでない場合にエラーを返します。

<module><jws> 子要素は、1 つ以上指定する必要があります。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

次の表では、<module> 要素の属性について説明します。

表 A-5 jwsc Ant タスクの <module> 要素の属性
属性
説明
必須/省略可能
contextPath
このモジュールに含まれるすべての Web サービスのコンテキスト ルート。
たとえば、WebLogic Web サービスのデプロイされた WSDL が次のようになっているとする。
http://hostname:7001/financial/GetQuote?WSDL
この場合、この Web サービスのコンテキスト ルートは financial
この属性の値は、このモジュールに含まれる JWS ファイルで設定されているその他のコンテキスト パスをオーバーライドする。これには、<jws> の転送関連の子要素の他に、転送関連の JWS アノテーションも含まれる。
この属性のデフォルト値は JWS ファイルの名前。ただし、拡張子は付かない。たとえば、JWS ファイルが HelloWorldImpl.java の場合、その contextPath のデフォルト値は HelloWorldImpl になる。
1 つの WAR 内の複数の Web サービスのコンテキスト ルートを同じにする場合にのみ必須。「WebLogic Web サービスの最終コンテキスト ルートの確定方法」を参照
explode
デプロイ可能な Web サービスを格納する生成済みの WAR ファイルを、展開ディレクトリ形式にするかどうかを指定する。
この属性の有効な値は、true または false。デフォルト値は false で、jwsc は実際の WAR アーカイブ ファイルを生成し、展開されたディレクトリ形式にはならない。
省略可能
name
生成された WAR ファイル (explode 属性が true に設定されている場合は展開ディレクトリ) で、デプロイ可能な Web サービスを格納しているファイルの名前。実際の WAR アーカイブ ファイルが生成されると、ファイル名には .war 拡張子が付けられる。
この属性のデフォルト値は jws
省略可能
wsdlOnly
<module><jws> 子要素によって指定される各 JWS ファイルに対して WSDL ファイルのみが生成されるように指定する

注意 : デプロイメント記述子やサービス エンドポイント インタフェースなどの他のアーティファクトは生成されないが、Web サービス オペレーションのパラメータと戻り値のデータ型を記述する XML スキーマを WSDL に含める必要があるので、データ バインディング アーティファクトは生成される

WSDL は、destDir ディレクトリに生成される。ファイル名は JWS_ClassNameService.wsdl (JWS_ClassName は JWS クラス名)。JWS_ClassNameService は、生成された WSDL ファイルで Web サービスの名前にもなる。
この属性を true に設定し、explode 属性を false (これもデフォルト値) に設定すると、jwsc は explode 属性を無視し、常に展開形式で出力を生成する。
この属性の有効な値は、true または false。デフォルト値は false で、WSDL ファイルだけでなく、すべてのアーティファクトが生成されることを示す。
省略可能

WLHttpTransport

WLHttpTransport 要素では、生成された WSDL のポート名に加え、HTTP 転送形式で Web サービスを呼び出すために使用するコンテキスト パスおよび URL のサービス URI セクションを指定します。

<WLHttpTransport> 要素は <jws> 要素の子です。

<WLHttpTransport> 要素は、特定の JWS ファイルに対して 1 つ指定できます。または、この要素は指定しなくても構いません。

この要素の指定時に従うガイドラインについては、「Web サービスの呼び出しに使用される転送形式の指定」を参照してください。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

次の表では、<WLHttpTransport> の属性について説明します。

表 A-6 <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.nameMyService に設定されている場合、デフォルトの portName は MyServiceSoapPort となる。
省略可能

WLHttpsTransport

警告 : <WLHttpsTransport> 要素は WebLogic Server 9.2 では非推奨です。代わりに、<WLHttpTransport> 要素を使用してください。これらは HTTP および HTTPS プロトコルを両方ともサポートするようになったためです。クライアント アプリケーションに HTTPS プロトコルのみを使用して Web サービスにアクセスさせるには、JWS ファイルで @weblogic.jws.security.UserDataConstraint JWS アノテーションを指定する必要があります。

WLHttpsTransport 要素では、生成された WSDL のポート名に加え、セキュリティで保護された HTTPS 転送形式で Web サービスを呼び出すために使用するコンテキスト パスおよび URL のサービス URI セクションを指定します。

<WLHttpsTransport> 要素は <jws> 要素の子です。

<WLHttpsTransport> 要素は、特定の JWS ファイルに対して 1 つ指定できます。または、この要素は指定しなくても構いません。

この要素の指定時に従うガイドラインについては、「Web サービスの呼び出しに使用される転送形式の指定」を参照してください。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。

次の表では、<WLHttpsTransport> の属性について説明します。

表 A-7 <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.nameMyService に設定されている場合、デフォルトの portName は MyServiceSoapPort となる。
省略可能

WLJMSTransport

WLJMSTransport 要素では、生成された WSDL のポート名に加え、JMS 転送形式で Web サービスを呼び出すために使用するコンテキスト パスおよび URL のサービス URI セクションを指定します。また、JMS 転送用にコンフィグレーション済みの JMS キュー名および接続ファクトリ名も指定します。

<WLHJmsTransport> 要素は <jws> 要素の子です。

<WLJmsTransport> 要素は、特定の JWS ファイルに対して 1 つ指定できます。または、この要素は指定しなくても構いません。

この要素の指定時に従うガイドラインについては、「Web サービスの呼び出しに使用される転送形式の指定」を参照してください。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

次の表では、<WLJmsTransport> の属性について説明します。

表 A-8 <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.nameMyService に設定されている場合、デフォルトの portName は MyServiceSoapPort となる。
省略可能
queue
JMS 転送用にコンフィグレーション済みの JMS キューの JNDI 名。JMS 転送の使用の詳細については、「接続プロトコルとしての JMS 転送の使用」を参照。
この属性を指定しない場合のデフォルト値は weblogic.wsee.DefaultQueue。その場合でも、Web サービスのデプロイ先となる WebLogic Server インスタンスで、この JMS キューを作成する必要がある。
省略可能
connectionFactory
JMS 転送用にコンフィグレーション済みの JMS 接続ファクトリの JNDI 名。
この属性のデフォルト値は、WebLogic Server インスタンスのデフォルトの JMS 接続ファクトリ。
省略可能

clientgen

JWS ファイル自体で別の Web サービスを呼び出し、jwsc Ant タスクで、必要なクライアントサイドのアーティファクトを自動的に生成およびコンパイルし、それらを Web サービスと一緒に Web アプリケーション WAR ファイルにパッケージ化する場合、<clientgen> 要素を使用します。クライアントサイドのアーティファクトには、以下のものが含まれます。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

標準の Ant <sysproperty> 子要素を使用して、クライアントサイドのアーティファクトの生成元となる Web サービスで必要となるプロパティを指定できます。たとえば、Web サービスが保護される場合、javax.xml.rpc.security.auth.username および javax.xml.rpc.security.auth.password プロパティを使用して、認証されたユーザ名およびパスワードを設定できます。<sysproperty> に関する詳細については、java Ant タスクの Ant のマニュアルを参照してください。

次の表では、<clientgen> 要素の属性について説明します。

表 A-9 <clientgen> 要素の属性
属性
説明
必須/省略可能
autoDetectWrapped
jwsc Ant タスクでドキュメントリテラル Web サービスのパラメータと戻り値の型が wrappedbare かを判別するかどうかを指定する。
WSDL ファイルを解析して JAX-RPC スタブを作成する場合、jwsc Ant タスクは、XML スキーマ要素の名前やオペレーションとパラメータの名前などに基づいて、ドキュメントリテラル Web サービスが wrapped パラメータを使用するか bare パラメータを使用するかを判別し、戻り値の型を識別する。これらのコンポーネント名がどのように照合されるかによって、jwsc Ant タスクは、パラメータが wrapped か bare かを推定する。ただし、Ant タスクでパラメータの型が常に bare と推定されるように指定することもできる。この場合、autoDetectWrapped 属性を False に設定する。
この属性の有効な値は、True または False。デフォルト値は True
省略可能
handlerChainFile
JWS ファイルが Web サービスを呼び出すときに実行されるクライアントサイド SOAP メッセージ ハンドラを記述する XML ファイルの名前を指定する。
ファイルで指定された各ハンドラは、以下のタイミングで 2 回実行される。
  • JWS が、呼び出された Web サービスに SOAP リクエストを送信する直前
  • JWS が、呼び出された Web サービスから SOAP 応答を受信した直後
この属性を指定しなかった場合、Web サービスが JWS ファイルから呼び出される時、クライアントサイドのハンドラは CLASSPATH にあっても実行されない。
クライアントサイドの SOAP メッセージ ハンドラの作成の詳細および例については、「クライアントサイド SOAP メッセージ ハンドラの作成と使用」を参照。
省略可能
generateAsyncMethods
jwsc Ant タスクが、JWS ファイルが Web サービスのオペレーションを非同期的に呼び出すために使用できるメソッドを、生成された JAX-RPC スタブに格納するかどうかを指定する。
たとえば、True (デフォルト値) を指定し、WSDL に getQuote という Web サービス オペレーションがある場合、jwsc Ant タスクは、getQuoteAsync というメソッドを JAX-RPC スタブに生成する。JWS ファイルは、元の getQuote メソッドの代わりにこのメソッドを使用できる。この非同期的な種類のオペレーションには、JWS ファイルが非同期プロパティやコンテキスト変数などを設定するための追加パラメータ (weblogic.wsee.async.AsyncPreCallContext データ型) も含まれる。
この機能の詳細と手順については、「非同期の要求と応答を使用した Web サービスの呼び出し」を参照。

注意 : JWS ファイル内で呼び出される Web サービスのオペレーションが一方向としてマークされている場合、generateAsyncMethods 属性を True に設定しても、jwsc Ant タスクは非同期的な種類の JAX-RPC スタブを生成しない。

この属性の有効な値は、True または False。デフォルト値は True で、非同期メソッドが生成されることを示す。
省略可能
generatePolicyMethods
jwsc Ant タスクが、WS-Policy のロード メソッドを、生成された JAX-RPC スタブに格納するかどうかを指定する。これらのメソッドを JWS ファイル内で使用すると、Web サービスを呼び出す際にローカル WS-Policy ファイルをロードできる。
True を指定した場合、getXXXSoapPort() (XXX は Web サービス名) という 4 種類のメソッドが、JAX-RPC Service インタフェースの拡張機能として、生成されたクライアント スタブに追加される。JWS ファイルでこれらのメソッドを使用するようにプログラミングすると、Web サービス自体でデプロイされた WS-Policy ファイルを適用する代わりに、ローカル WS-Policy ファイルをロードして適用できる。JWS ファイルで、着信 SOAP メッセージ、発信 SOAP メッセージ、または発着信双方の SOAP メッセージにローカル WS-Policy ファイルを適用するか、ローカル WS-Policy ファイルを InputStream からロードするか URI からロードするかを指定できる。
この属性の有効な値は、True または False。デフォルト値は False で、追加メソッドは生成されないことを示す
省略可能
includeGlobalTypes
jwsc Ant タスクで、Web サービス オペレーションで明示的に使用されているデータ型だけでなく、WSDL 内のすべての XML スキーマ データ型の Java 表現を生成するかどうかを指定する。
この属性の有効な値は、True または False。デフォルト値は False で、jwsc が、積極的に使用されている XML データ型のみの Java 表現を生成することを意味する。
 
jaxRPCWrappedArrayStyle
jwsc Ant タスクが、WSDL ファイルの XML スキーマのデータ型と同じ Java を生成しているときに、maxOccurs 属性が unbounded に指定された単一の要素を持つ単一の親シーケンスを格納した XML 複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前の Java 構造体をデフォルトで生成する。代わりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleFalse に設定する。
この属性の有効な値は、True または False。デフォルト値は True
省略可能
packageName
生成された JAX-RPC クライアント インタフェースとスタブ ファイルをパッケージ化するパッケージ名。
パッケージ名には小文字を使用することが推奨される。
必須
serviceName
対応するクライアントサイドのアーティファクトが生成される WSDL ファイル内の Web サービスの名前。
Web サービス名は WSDL ファイル内の <service> 要素に一致する。
この名前は、生成された JAX-RPC マッピング ファイル、および WSDL ファイルのクライアント サイドのコピーで使用される。たとえば、serviceNameCuteService に設定した場合、JAX-RPC マッピング ファイルは cuteService_java_wsdl_mapping.xml、WSDL のクライアントサイドのコピーは CuteService_saved_wsdl.wsdl となる。
この属性は、WSDL ファイルに複数の <service> 要素が格納されている場合にのみ必須。
この属性を指定しておらず、1 つまたは複数の <service> 要素が WSDL ファイルに格納されている場合、Ant タスクはエラーを返す。
wsdl
クライアントのアーティファクトの生成が必要な (WebLogic または非 WebLogic) Web サービスを記述する WSDL の完全パス名または URL。
生成された JAX-RPC スタブ ファクトリ クラスは、デフォルト コンストラクタ内のこの属性の値を使用する。
必須

descriptor

Web サービスの実装を格納する WAR を生成する際に新しい Web アプリケーション デプロイメント記述子を作成するのではなく、jwsc タスクが既存のファイルをコピーし、それらを新しい情報で更新することを指定するために <descriptor> 要素を使用します。これは、1 つまたは複数の Web サービスの追加対象となる既存の Web アプリケーションがある場合に有効です。通常、この要素は、標準の <FileSet> Ant タスクと一緒に使用し、HTML ファイルおよび Java クラスなど、その他の既存の Web アプリケーション アーティファクトを jwsc 生成の Web アプリケーションにコピーします。

この要素と一緒に使用できるデプロイメント記述子ファイルは次の 2 つのみです。

各デプロイメント記述子ファイルには、個別の <descriptor> 要素を使用します。

<descriptor> 要素は、<module> または <jws> (メインの jwsc Ant タスクの直接の子である場合の <jws>) の子です。

警告 : <descriptor> 要素で指定される既存の web.xml および weblogic.xml ファイルは、検証エラーで jwsc Ant タスクが失敗する DTD ベースではなく、XML スキーマ ベースである必要があります。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

次の表では、<descriptor> 要素の属性について説明します。

表 A-10 <descriptor> 要素の属性
属性
説明
必須/省略可能
file
既存のデプロイメント記述子ファイルの完全パス名 (絶対パスでも相対パスでも構わない。相対パスの場合は、build.xml ファイルを格納するディレクトリを基準にする)。デプロイメント記述子は、DTD ベースではなく、XML スキーマ ベースである必要がある。
jwsc Ant タスクは、このファイルを直接更新しないが、新規に生成した Web アプリケーションにコピーする。
必須

jwsfileset

<module><jwsfileset> 子要素として使用し、jwsc Ant タスクが、コンパイルする JWS ファイルを検索する 1 つまたは複数のディレクトリを指定します。jwsc が検出した JWS ファイルのリストは、あたかも、各ファイルが <module><jws> 子要素で個別に指定されていたかのように処理されます。

検索を絞り込むには、<FileSet> Ant タスクの標準のネストされた要素を使用します。たとえば、リストに含める JWS ファイルを判別する際に、<jwsfileset> が従うべきパターン マッチングを指定するには、<include> 要素を使用します。<FileSet> およびそのネストされる要素の詳細については、Ant のマニュアルを参照してください。

この要素が jwsc 要素階層のどの場所にくるのかを視覚的に確認するには、図 A-1 を参照してください。この要素の使用例については、「」を参照してください。

次の表では、<jwsfileset> 要素の属性について説明します。

表 A-11 <jwsfileset> 要素の属性
属性
説明
必須/省略可能
includeSchemas
Web サービスの XMLBeans パラメータまたは戻り値が記述されている XML スキーマ ファイルの絶対パス。
複数の XML スキーマ ファイルを指定するには、カンマまたはセミコロンを区切り記号として使用する。

includeSchemas="po.xsd,customer.xsd"

この属性は、JWS ファイルが Web サービス オペレーションのパラメータまたは戻り値として明示的に XMLBeans データ型を使用している場合にのみサポートされる。XMLBeans データ型を使用していない場合、この属性を指定すると、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 を参照。

注意 : WebLogic Server 9.1 以降では、XMLBeans 1.X データ型 (つまり com.bea.xml.XmlObject の拡張) を WebLogic Web サービスのパラメータまたは戻り値の型として使用することは非推奨。新たに作成するアプリケーションでは、XMLBeans 2.x を使用する必要がある。

XMLBeans データ型をパラメータまたは戻り値として使用する場合は必須
srcdir
jwsc Ant タスクが、コンパイルする JWS ファイルを検索するディレクトリ (セミコロン区切り) を指定する。
必須

xsdConfig

<xsdConfig> 子要素を使用すると、1 つまたは複数の XMLBeans コンフィグレーション ファイル (通常、.xsdconfig で終わる) を指定できます。Web サービスで、パラメータまたは戻り値として Apache XMLBeans データ型を使用している場合、この要素を使います。

<xsdConfig> 要素は、標準の Ant <Fileset> 要素に似ており、同じ属性をすべて持ちます。属性の完全なリストについては、「Fileset」要素に関する Apache Ant のマニュアルを参照してください。

 


wsdlc

wsdlc Ant タスクは、既存の WSDL ファイルを基に一連のアーティファクトを生成します。これらのアーティファクトをまとめて、WSDL ファイルで記述された Web サービスの部分的な Java 実装が提供されます。

デフォルトでは、wsdlc Ant タスクがアーティファクトを生成する元となる <service> 要素が 1 つのみ WSDL ファイルに含まれるものとされます。ただし、srcServiceName 属性を使うと、複数の <service> 要素が WSDL ファイル内に存在する場合に、特定の Web サービスを指定することができます。または、srcPortName 属性を使うと、複数の <port> 子要素が特定の Web サービスに対して存在する場合に、Web サービスの特定のポートを指定することができます。

wsdlc Ant タスクを実行 (通常は 1 回だけ実行) したら、メソッドを目的どおりに実行するためにそのメソッドに Java コードを追加して、生成された JWS 実装ファイルを更新します。wsdlc Ant タスクは、WSDL ファイルを基に Web サービスの形式を認識していますが、その Web サービスをどのように実行するかについては認識していないので、最初は生成された JWS 実装ファイルにビジネス ロジックは含まれていません。

JWS 実装ファイルを記述するときに、JWS アノテーションを追加することもできます。ただし、以下の規則に従う必要があります。

目的どおりに機能するように JWS ファイルを記述したら、jwsc Ant タスクを繰り返し実行して、Web サービスの完全な Java 実装を生成します。jwsccompiledWsdl 属性を使用すると、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 ファイルの一部では、wsdlcjwsc の 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 タスクは、WebLogic 固有の子要素 <xsdConfig> を 1 つ持ちます。

<xsdConfig> 子要素を使用すると、1 つまたは複数の XMLBeans コンフィグレーション ファイル (通常、.xsdconfig で終わる) を指定できます。Web サービスで、パラメータまたは戻り値として Apache XMLBeans データ型を使用している場合、この要素を使います。

<xsdConfig> 要素は、標準の Ant <Fileset> 要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストについては、Apache Ant のマニュアルの「Fileset」を参照してください。

wsdlc Ant タスクで設定可能な、標準の Ant javac タスクに関連する要素のリストについては、「wsdlc に適用される標準の Ant javac 属性」を参照してください。

属性

次の表では、wsdlc Ant タスクの属性について説明します。wsdlc Ant タスクで設定可能な、標準の Ant javac タスクに関連する属性のリストについては、「wsdlc に適用される標準の Ant javac 属性」を参照してください。

WebLogic 固有の wsdlc 属性

表 A-12 wsdlc Ant タスクの属性
属性
説明
データ型
必須/省略可能
autoDetectWrapped
wsdlc Ant タスクでドキュメントリテラル Web サービスのパラメータと戻り値の型が wrappedbare かを判別するかどうかを指定する。
WSDL ファイルを解析して、Web サービスを実装する部分的な JWS ファイルを作成する場合、wsdlc Ant タスクは、XML スキーマ要素の名前やオペレーションとパラメータの名前などに基づいて、ドキュメントリテラル Web サービスが wrapped パラメータを使用するか bare パラメータを使用するかを判別し、戻り値の型を識別する。これらのコンポーネント名がどのように照合されるかによって、wsdlc Ant タスクは、パラメータが wrapped か bare かを推定する。ただし、Ant タスクでパラメータの型が常に bare と推定されるように指定することもできる。この場合、autoDetectWrapped 属性を False に設定する。
この属性の有効な値は、True または False。デフォルト値は True
ブール
省略可能
desImplDir
途中まで作成済みの JWS 実装ファイルの生成先となるディレクトリ。
生成された JWS ファイルは、生成された JWS インタフェース ファイル (JAR ファイル内に格納) を実装する。メソッドを目的どおりに実行するようにそのメソッドに Java コードを追加して、この JWS 実装ファイルを更新する。後で、jwsc Ant タスクに対して、この更新された JWS ファイルを指定し、デプロイ可能な Web サービスを生成する。
文字列
省略可能
destJavadocDir
JWS インタフェースを記述する Javadoc の生成先となるディレクトリ。
指定した Web サービスを実装する JWS インタフェース ファイルを格納した、生成された JAR ファイルを展開または更新する必要はないので、この生成された Javadoc からインタフェースに関する詳細を入手できる。途中まで作成済みの JWS 実装ファイルとともにこの Javadoc を使用すると、部分的に生成されている Web サービスにビジネス ロジックを追加できる。
文字列
省略可能
destJwsDir
JWS インタフェース ファイルおよびデータ バインディング アーティファクトを格納する JAR ファイルの生成先となるディレクトリ。
生成される JAR ファイルの名前は WSDLFile_wsdl.jar (WSDLFile は WSDL ファイルのルート名)。たとえば、file 属性に対して指定した WSDL ファイルの名前が MyService.wsdl の場合、生成された JAR ファイルは MyService_wsdl.jar となる。
文字列
必須
explode
生成された JWS インタフェース ファイルおよびデータ バインディング アーティファクトを格納する生成済みの JAR ファイルを、展開ディレクトリ形式にするかどうかを指定する。
この属性の有効な値は、true または false。デフォルト値は false で、wsdlc は実際の JAR アーカイブ ファイルを生成し、展開されたディレクトリ形式にはならない。
ブール
省略可能
jaxRPCWrappedArrayStyle
wsdlc Ant タスクが、WSDL ファイルの XML スキーマのデータ型と同じ Java を生成しているときに、maxOccurs 属性が unbounded に指定された単一の要素を持つ単一の親シーケンスを格納した XML 複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前の Java 構造体をデフォルトで生成する。代わりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleFalse に設定する。
この属性の有効な値は、True または False。デフォルト値は True
ブール
省略可能
packageName
生成された JWS インタフェースおよび実装ファイルの生成先となるパッケージ。
この属性を指定しない場合、wsdlc Ant タスクは、WSDL の targetNamespace に基づいてパッケージ名を生成する。
文字列
省略可能
srcBindingName
JWS インタフェース ファイルの生成元になる WSDL バインディングの名前。
wsdlc Ant タスクは、WSDL ファイル内で最初に見つかった <service> 要素に対して実行される。したがって、この <service> 要素に関連付けられている <binding> 要素が複数ある場合でも、srcBindingName 属性を指定するだけで済む。
バインディングのネームスペースがサービスのネームスペースと同じであれば、この属性の値にはバインディングの名前を指定するだけでよい。次に例を示す。

srcBindingName="MyBinding"

ただし、バインディングのネームスペースがサービスのネームスペースとは異なる場合、以下の形式でネームスペース URI も指定する必要がある。

srcBindingName="{URI}BindingName"

たとえば、MyBinding バインディングのネームスペース URI が www.examples.org であれば、次のように属性値を指定する。

srcBindingName="{www.examples.org}MyBinding"

注意 : この属性は WebLogic Server 9.2 では非推奨。代わりに srcPortName または srcServiceName を使用する。

文字列
WSDL ファイルに複数の <binding> 要素が格納されている場合のみ
srcPortName
JWS インタフェース ファイルの生成元になる WSDL ポートの名前。
この属性の値は、JWS インタフェース ファイルの生成対象の Web サービス ポートに対応する <port> 要素の name 属性の値に設定する。<port> 要素は、WSDL ファイル内の <service> 要素の子要素である。
この属性を指定した場合、srcServiceName を同時に指定することはできない。この属性を指定しない場合、wsdlc は、srcServiceName によって指定されるサービスから JWS インタフェース ファイルを生成する。
文字列
省略可能
srcServiceName
JWS インタフェース ファイルの生成元になる Web サービスの名前。
この属性の値は、JWS インタフェース ファイルの生成対象の Web サービスに対応する <service> 要素の name 属性の値に設定する。
wsdlc Ant タスクは、1 つの JWS エンドポイント インタフェースとデータ バインディング JAR ファイルを特定の Web サービスに対して生成する。これは、<service> 要素に複数の <port> 要素が含まれている場合、次の事項を満たす必要があることを意味する。
  • 各ポートのバインディングは同一か、お互い等価である必要がある。
  • 各ポートの転送形式は異なる必要がある。wsdlc Ant タスクは、<address> 子要素にリストされているアドレスからポートの転送形式を判別する。WebLogic Web サービスでサポートされている転送形式は 3 つ (JMS、HTTP および HTTPS) のみであるため、この属性で指定される <service> 要素に対して指定できる <port> 子要素は最高でも 3 つである。生成された JWS 実装ファイルには、対応する @WLXXXTransport アノテーションが含まれる。
この属性を指定した場合、srcPortName を同時に指定することはできない。
この属性または srcPortName 属性のいずれも指定しない場合、WSDL ファイルに含めることができる <service> 要素は 1 つのみである。wsdlc Ant タスクは、この 1 つの Web サービスから JWS インタフェース ファイルとデータ バインディング JAR ファイルを生成する。
   
srcWsdl
JWS インタフェースとデータ バインディング アーティファクトを格納する JAR ファイルの生成に使用する WSDL ファイルの名前。
WSDL ファイル名はパス名を含んでいる必要がある。このパス名は、絶対パスでも相対パスでも構わない。相対パスの場合は、Ant build.xml ファイルを格納するディレクトリを基準にする。
文字列
必須

wsdlc に適用される標準の Ant javac 属性

WebLogic 定義の wsdlc 属性の他に、次に示す標準 javac 属性も定義できます。各属性の詳細については、Ant のマニュアルを参照してください。

wsdlc Ant タスクでは、次の標準 Ant 子要素も使用できます。


  ページの先頭       前  次