2 Antタスク・リファレンス

WebLogic Webサービスには、構成タスクや管理タスクの多くを単一のAntビルド・スクリプトに一元化するのに使用できる様々なAntタスクが用意されています。

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 Antマニュアルを参照してください。

注意:

Apache JakartaのWebサイトでは、Antの最新バージョンに関するオンライン・ドキュメントのみを公開しています。このAntは、WebLogic Serverに同梱されているものとはバージョンが異なる可能性があります。WebLogic Serverに同梱されているAntのバージョンを判断するには、WebLogic環境の設定後、次のコマンドを実行します。

prompt> ant -version

特定のバージョンのAntのドキュメントを参照するには、http://archive.apache.org/dist/ant/binaries/からAntのzipファイルをダウンロードして、ドキュメントを展開します。

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

表2-1 WebLogic WebサービスAntタスク

Antタスク 説明

clientgen

Serviceスタブなど、Webサービスの呼出しに使用するクライアント側アーティファクトを生成します。

jwsc

Java Webサービス(JWS)アノテーション付きファイルをWebサービスにコンパイルします。

wsdlc

WSDLファイルを基にWebサービスの部分的な実装を生成します。

wsdlget

WSDLとインポートされたXMLターゲット(XSDおよびWSDLファイル)をローカル・ディレクトリにダウンロードします。

開発環境でこれらのAntタスクを統合して使用し、Webサービス、およびWebサービスを呼び出すクライアント・アプリケーションをプログラミングする方法の詳細は、次のドキュメントを参照してください。

clientgen

clientgen Antタスクは、クライアント・アプリケーションがWebLogic Webサービスと非WebLogic Webサービスの両方の呼出しに使用できるクライアント・コンポーネント・ファイルを既存のWSDLファイルから生成します。

JAX-WS Webサービスに対して生成されるアーティファクトには次のものがあります。

  • 呼出しの対象となる特定のWebサービスに対するServiceインタフェース実装のJavaクラス。

  • JAXBデータ・バインディング・アーティファクト。

  • WSDLファイルで指定されたユーザー定義XMLスキーマ・データ型のJavaクラス。

JAX-RPC Webサービスに対して生成されるアーティファクトには次のものがあります。

  • 呼出しの対象となる特定のWebサービスに対するStubおよびServiceインタフェース実装のJavaクラス。

  • WSDLファイルで指定されたユーザー定義XMLスキーマ・データ型のJavaソース・コード。

  • Javaのユーザー定義のデータ型と、WSDLファイル内で指定されたそのデータ型に対応するXMLスキーマ型の間のマッピングに関する情報を格納するJAX-RPCマッピング・デプロイメント記述子ファイル。

  • WSDLファイルのクライアント側のコピー。

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

  • Java Platform, Enterprise Edition (Java EE)バージョン5クライアント・コンテナを使用しないスタンドアロンのJavaクライアント。

  • EJB、JSP、Webサービスなど、Java EEクライアント・コンテナを使用するJava EEクライアント。

デフォルトでは、clientgen AntタスクはJAX-RPC Webサービス用のクライアント・アーティファクトを生成します。JAX-WS Webサービス用のクライアント・アーティファクトを生成する場合は、type属性をJAXWSに設定します。例: type="JAXWS"

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

次の項では、clientgen Antタスクの詳細について説明します。

Taskdefのクラス名

次のコードは、Antビルド・ファイルに記述する必要があるclientgenクラス名のタスク定義です。

  <taskdef name="clientgen"
      classname="weblogic.wsee.tools.anttasks.ClientGenTask" />

子要素

次の各項では、clientgen AntタスクのWebLogic固有の子要素について説明します。

binding

<binding>子要素は、次のいずれかを指定するために使用します。

<binding>要素を標準のAnt FileSetデータ型と同じ方法で同じ属性を使用して使用します。たとえば、次の<binding>要素は、ファイルjaxws-binding.xmlで定義しているJAX-WSカスタム・バインディング宣言を指定します。

<binding file="./jaxws-binding.xml"/>

次の例は、${basedir}ディレクトリにあるJAX-WSカスタマイズ・ファイルを指定します。

<binding dir="${basedir}"/>

FileSetデータ型を使用して指定できる属性のフル・セットに関する詳細は、http://ant.apache.org/index.htmlで使用しているAntのバージョンのドキュメントを取得し、FileSet型の説明にナビゲートします。

jmstransportclient

注意:

<jmstransportclient>子要素はJAX-WSにのみ適用され、JAX-RPCには適用されません。

<jmstransportclient>要素は、SOAP over JMSトランスポートを有効化して構成します。

オプションで、<jmstransportclient>要素を使用して、宛先名、宛先タイプ、配信モード、リクエスト・キューとレスポンス・キュー、および他のJMSトランスポート・プロパティを構成できます。サポートされているJMSトランスポート・プロパティの完全な一覧は、Oracle WebLogic Server JAX-WS Webサービスの開発JMSトランスポートのプロパティの構成を参照してください。

次の例では、clientgenを使用してWebサービス・クライアントを生成するときに、JMSトランスポートを有効化および構成する方法を示します。

<target name="clientgen">
<clientgen
      wsdl="./WarehouseService.wsdl"
      destDir="clientclasses"
      packageName="client.warehouse"
      type="JAXWS">
      <jmstransportclient
                targetService="JWSCEndpointService"
                destinationName="com.oracle.webservices.jms.SoapJmsRequestQueue"
                jndiInitialContextFactory="weblogic.jndi.WLInitialContextFactory"
                jndiConnectionFactoryName="weblogic.jms.ConnectionFactory"
                jndiURL="t3://localhost:7001"
                deliveryMode="NON_PERSISTENT"
                timeToLive="60000"
                priority="1"
                messageType="TEXT"
                replyToName="com.oracle.webservices.jms.SoapJmsResponseQueue"
     />
</clientgen>
xmlcatalog

注意:

<xmlcatalog>子要素はJAX-WSにのみ適用されます。JAX-RPCには適用されません。

<xmlcatalog>子要素には、組込みXMLカタログのIDを指定します。要素の構文は次のとおりです。

<xmlcatalog refid="id"/>

<xmlcatalog>によって参照されるIDは、組込みXMLカタログのIDと一致していなければなりません。build.xmlファイルにXMLカタログを組み込むには、次の構文を使用します。

<xmlcatalog id="id">
     <entity publicid="public_id" location="uri"/>
</xmlcatalog>

上の構文で、public_idには元のXMLリソース(WSDLまたはXSD)のパブリック識別子を指定し、uriには置換XMLリソースを指定します。

以下の例は、XMLカタログを組み込んでclientgenを使用して参照する方法を示しています。関連するコード行は太字で示しています。

<target name="clientgen">
<clientgen 
     type="JAXWS"
     wsdl="${wsdl}"
     destDir="${clientclasses.dir}"
     packageName="xmlcatalog.jaxws.clientgen.client"
     catalog="wsdlcatalog.xml">
     <xmlcatalog refid="wsimportcatalog"/>
</clientgen>
</target>
<xmlcatalog id="wsimportcatalog">
     <entity publicid="http://helloservice.org/types/HelloTypes.xsd"
             location="${basedir}/HelloTypes.xsd"/>
</xmlcatalog>

『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

属性

次の表では、clientgen AntタスクのWebLogic固有の属性について説明し、それらがJAX-WSまたはJAX-RPC Webサービス(あるいはその両方)で有効かどうかを指定します。

表2-2 clientgen AntタスクのWebLogic固有の属性

属性 説明 データ型 必須? JAX-WS/JAX-RPC/両方

autoDetectWrapped

clientgen Antタスクでドキュメント・リテラルWebサービスのパラメータと戻り値の型がwrappedbareかを判別するかどうかを指定します。

WSDLファイルを解析してクライアント・スタブを作成する場合、clientgen Antタスクは、XMLスキーマ要素の名前や操作とパラメータの名前などに基づいて、ドキュメント・リテラルWebサービスがwrappedパラメータを使用するかbareパラメータを使用するかを判別し、戻り値の型を識別します。これらのコンポーネント名がどのように照合されるかによって、clientgen Antタスクは、パラメータがwrappedかbareかを推定します。ただし、Antタスクがパラメータの型を常にbareであると推定するようにしたい場合もあります。この場合、autoDetectWrapped属性をFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

catalog

外部XMLカタログ・ファイルを指定します。『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

String

いいえ

JAX-WS

copyWsdl

WSDLを、destDirで定義された宛先ディレクトリでコピーするかどうかを制御します。

ブール

いいえ

JAX-WS

destDir

clientgen Antタスクがクライアント・ソース・コード、WSDLファイル、クライアント・デプロイメント記述子ファイルを生成するディレクトリ。

この属性は、任意のディレクトリに設定できます。ただし、EJB、JSP、または別のWebサービスからWebサービスを呼び出すクライアント・コンポーネント・ファイルを生成する場合、この属性は通常、共有クラスを保持するJava EEコンポーネントのディレクトリ(たとえば、EJBの場合はMETA-INF、Webアプリケーションの場合はWEB-INF/classes、エンタープライズ・アプリケーションの場合はAPP-INF/classes)に設定します。スタンドアロン・クライアントからWebサービスを呼び出す場合は、ユーザーのクライアント・アプリケーション・コードと同じソース・コード・ディレクトリ階層内にクライアント・コンポーネント・ファイルを生成できます。

String

destFileまたはdestDirのいずれかの属性を指定する必要があります(両方は指定できません)。

両方

destFile

clientgenタスクがクライアント・ソース・コード、コンパイル済クラス、WSDL、およびクライアント・デプロイメント記述子ファイルをパッケージ化する展開されたディレクトリまたはJARファイルの名前。この属性を指定すると、clientgen Antタスクは、すべてのJavaコードもクラス・ファイルにコンパイルします。

JARファイルを作成または更新するには、myclientjar.jarなど、JARファイルの指定時に.jar接尾辞を使用します。属性値が.jar接尾辞を持たない場合、clientgenタスクは、ディレクトリ名のことを指しているものと解釈します。

存在しないJARファイルまたはディレクトリを指定すると、clientgenタスクは新しいJARファイルまたはディレクトリを作成します。

String

destFileまたはdestDirのいずれかの属性を指定する必要があります(両方は指定できません)。

両方

failonerror

clientgen Antタスクが、エラー発生時にも実行し続けるかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrue (エラーが発生しても、clientgenが実行し続けることを意味します)。

ブール

いいえ

両方

generateAsyncMethods

clientgen Antタスクが、クライアント・アプリケーションがWebサービス操作を非同期的に呼び出すために使用できるメソッドを、生成されたスタブに格納するかどうかを指定します。

たとえば、True(デフォルト値)を指定し、WSDLにgetQuoteというWebサービス操作がある場合、clientgen AntタスクはgetQuoteAsyncというメソッドもスタブに生成するので、クライアント・アプリケーションは元のgetQuoteメソッドのかわりにこのメソッドを呼び出します。この非同期的な種類の操作には、クライアント・アプリケーションが非同期プロパティやコンテキスト変数などを設定するための追加パラメータ(weblogic.wsee.async.AsyncPreCallContextデータ型)も含まれます。

注意: Webサービス操作が一方向としてマークされている場合、generateAsyncMethods属性を明示的にTrueに設定しても、clientgen Antタスクは非同期的な種類のスタブを生成しません。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueで、非同期メソッドが生成されることを示します。

ブール

いいえ

JAX-RPC

generatePolicyMethods

clientgen Antタスクが、WS-Policyのロード・メソッドを、生成されたスタブに格納するかどうかを指定します。これらのメソッドにより、クライアント・アプリケーションはローカルWS-Policyファイルをロードできます。

Trueを指定した場合、getXXXSoapPort()(XXXはWebサービス名)という4種類のメソッドが、Serviceインタフェースの拡張機能として、生成されたクライアント・スタブに追加されます。クライアント・アプリケーションは、これらのメソッドを使用すると、Webサービス自体でデプロイされたWS-Policyファイルを適用するかわりに、ローカルWS-Policyファイルをロードして適用できます。インバウンド、アウトバウンド、またはその両方のSOAPメッセージのいずれにローカルWS-Policyファイルを適用するか、InputStreamとURIのどちらからローカルWS-Policyファイルをロードするかをクライアント・アプリケーションで指定できます。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、追加メソッドは生成されないことを示します。

詳細は、Oracle WebLogic Server WebLogic Webサービスの保護クライアント側セキュリティWS-Policyファイルの使用を参照してください。

ブール

いいえ

JAX-RPC

getRuntimeCatalog

clientgen Antタスクがクライアントの実行時環境にXMLカタログ・アーティファクトを生成するかどうかを指定します。生成を無効にするには、このフラグをfalseに設定します。この値のデフォルトはtrueです。『Oracle WebLogic Server JAX-WS Webサービスの開発』クライアント・ランタイムでのXMLカタログの無効化に関する項を参照してください。

ブール

いいえ

JAX-WS

handlerChainFile

クライアント・アプリケーションがWebサービスを呼び出すときに実行されるクライアント側SOAPメッセージ・ハンドラを記述するXMLファイルの名前を指定します。

ファイルで指定された各ハンドラは、以下のタイミングで2回実行されます。

  • クライアント・アプリケーションがWebサービスにSOAPリクエストを送信する直前

  • クライアント・アプリケーションがWebサービスからSOAPレスポンスを受信した直後

このclientgen属性を指定しなかった場合、クライアント側のハンドラはCLASSPATHにあっても実行されません。

クライアント側SOAPメッセージ・ハンドラの作成の詳細と例は、クライアント側SOAPメッセージ・ハンドラの作成と使用を参照してください。

String

いいえ

JAX-RPC

includeGlobalTypes

clientgen Antタスクで、Webサービス操作で明示的に使用されているデータ型だけでなく、WSDL内のすべてのXMLスキーマ・データ型のJava表現を生成するかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、clientgenが、積極的に使用されているXMLデータ型のみのJava表現を生成することを意味します。

ブール

いいえ

JAX-RPC

jaxRPCWrappedArrayStyle

clientgen Antタスクが、WSDLファイルのXMLスキーマのデータ型と同じJavaを生成しているときに、maxOccurs属性がunboundedに指定された単一の要素を持つ単一の親シーケンスを格納したXML複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前のJava構造体をデフォルトで生成します。かわりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

packageName

生成されたクライアント・インタフェースとスタブ・ファイルをパッケージ化するパッケージ名。

この属性を指定しない場合、clientgen Antタスクは、WSDLファイルのtargetNamespaceに基づくパッケージ名を持つJavaファイルを生成します。たとえば、targetNamespaceがhttp://example.orgの場合、パッケージにはorg.exampleまたはそれに近い名前などが付けられます。パッケージ名を任意に指定する場合は、この属性を指定する必要があります。

この属性を指定しなかった場合、パッケージ名にはすべて小文字を使用することを推奨します。

String

いいえ

両方

serviceName

対応するクライアント・コンポーネント・ファイルが生成されるWSDLファイル内のWebサービスの名前。

Webサービス名はWSDLファイル内の<service>要素に一致します。

この名前は、生成されたマッピング・ファイル、およびWSDLファイルのクライアント側のコピーで使用されます。たとえば、serviceNameCuteServiceに設定した場合、マッピング・ファイルはcuteService_java_wsdl_mapping.xml、WSDLのクライアント側のコピーはCuteService_saved_wsdl.wsdlとなります。

String

この属性は、WSDLファイルに複数の<service>要素が格納されている場合のみ必須です。

この属性を指定しておらず、1つまたは複数の<service>要素がWSDLファイルに格納されている場合、Antタスクはエラーを返します。

JAX-RPC

sortSchemaTypes

XSDファイルでは、名前付きのグローバル型と名前なしのローカル型の2つの複合型が定義されています。デフォルトでは、clientgenは名前なしのローカル型に対して独自の名前を自動的に生成しますが、様々なWSDLファイルをコンパイルする際に生成される名前は常に同一ではありません。

有効にすると、clientgenによって生成されるJavaファイル内の型名が同一になります。

ブール

いいえ

JAX-RPC

type

クライアント・アーティファクトの生成対象であるWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は次のとおりです:

  • JAXWS

  • JAXRPC

デフォルト値はJAXRPCです。

String

いいえ

両方

wsdl

クライアント・コンポーネント・ファイルの生成が必要な(WebLogicまたは非WebLogic) Webサービスを記述するWSDLのフルパス名またはURL。

クライアントJARファイル内の生成されたスタブ・ファクトリ・クラスは、デフォルト・コンストラクタ内のこの属性の値を使用します。

String

はい

両方

wsdlLocation

@WebServiceClientで生成されるwsdlLocation属性の値を指定します。

String

いいえ

JAX-WS

次の例は、clientgen Antターゲットを構築する方法を示しています。

例1   基本的なclientgen Antターゲットの構築

次の例では、サンプルのbuild_clientターゲットが実行されるときに、clientgenは、wsdl属性で指定されたWSDLファイルを使用して、serviceName属性で指定されたWebサービスの呼出しに必要なクライアント側アーティファクトをすべて生成します。clientgen Antタスクは、すべてのアーティファクトを/output/clientclassesディレクトリに生成します。生成されたJavaコードは、すべてmyapp.myservice.clientパッケージにあります。clientgenが終了すると、javac Antタスクは、clientgenが生成したJavaコード、および生成されたアーティファクトを使用してユーザーのビジネス・コードを格納する独自のクライアント・アプリケーションのJavaコードをコンパイルします。デフォルトでは、clientgenはJAX-RPC Webサービスに基づくクライアント・アーティファクトを生成します。

<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>
例2   JAX-WS Webサービス・クライアントの生成

前述の例では、クライアント・アーティファクトの生成対象であるWebサービスがJAX-RPCに基づいていることを前提としています。次の例では、type属性を使用してWebサービスがJAX-WSに基づいていることを指定する方法を示します。

<clientgen
 type="JAXWS"
 wsdl="http://${wls.hostname}:${wls.port}/JaxWsImpl/JaxWsImplService?WSDL"
 destDir="/output/clientclasses"
 packageName="examples.webservices.jaxws.client"
/>
例3   生成されたアーティファクトのコンパイルとパッケージ化

生成されたアーティファクトをclientgen Antタスクでコンパイルおよびパッケージ化する場合、destDirではなく、destFile属性を指定します。この例の場合、build.xmlファイルでclientgenの後にjavac Antタスクを指定する必要はありません。これは、Javaコードがすでにコンパイルされているためです。

<clientgen
    type="JAXWS"
    wsdl="http://example.com/myapp/myservice.wsdl"
    destFile="/output/jarfiles/myclient.jar"
    packageName="myapp.myservice.client"
    serviceName="StockQuoteService" 
/>
例4   静的WSDLファイルに対するclientgenの実行

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

wsdl="jar:file:archive_file!WSDL_file"

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

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

<clientgen
    type="JAXWS"
      wsdl="jar:file:output/myEAR/examples/webservices/simple/SimpleImpl.war!/WEB-INF/SimpleService.wsdl"
      destDir="/output/clientclasses"
      packageName="myapp.myservice.client"
/>
例5   Javaプロパティの設定

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

<clientgen
    type="JAXWS"
    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>

jwsc

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

JAX-WS Webサービスに対して生成されるアーティファクトには次のものがあります。

  • サービス・エンドポイント・インタフェース(JWS_ClassNamePortType.javaJWS_ClassNameはJWSクラスを示す)などのJSR-109 Webサービス・クラス・ファイル(http://www.jcp.org/en/jsr/detail?id=109)。

  • JAXBデータ・バインディング・アーティファクト・クラス・ファイル。

  • 必要な全デプロイメント記述子。以下を含みます。

    • サーブレット・ベースのWebサービス・デプロイメント記述子ファイル(web.xml)。

    • Earデプロイメント記述子ファイルapplication.xmlおよびweblogic-application.xmlです。

      注意:

      JAX-WS Webサービスの場合、次の点に注意してください。

      • WSDLファイルは、サービス・エンドポイントのデプロイ時に生成されます。

      • EJB 3.0ベースのWebサービスに必要なEJBデプロイメント記述子はありません。

JAX-RPC Webサービスに対して生成されるアーティファクトには次のものがあります。

  • サービス・エンドポイント・インタフェース(JWS_ClassNamePortType.javaJWS_ClassNameはJWSクラスを示す)などのJSR-109 Webサービス・クラス・ファイル(http://www.jcp.org/en/jsr/detail?id=175)。

  • 必要な全デプロイメント記述子。以下を含めることができます。

    • 標準およびWebLogic固有のWebサービスのデプロイメント記述子(webservices.xmlweblogic-webservices.xmlおよびweblogic-webservices-policy.xml)。

    • JAX-RPCマッピング・ファイル。

    • Javaクラス実装のWebサービス(web.xmlおよびweblogic.xml)。

    • EJB実装のWebサービス(ejb-jar.xmlおよびweblogic-ejb-jar.xml)。

    • Earデプロイメント記述子ファイルapplication.xmlおよびweblogic-application.xmlです。

  • Webサービス操作のパラメータまたは戻り値として使用されるJavaユーザー定義データ型のXMLスキーマ表現。

  • Webサービスの内容を外部に公開する形で記述したWSDLファイル。

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

デフォルトでは、jwsc AntタスクはJAX-RPC仕様に準拠したWebサービスを生成します。ただし、<jws>子要素のtype属性を使用して、生成されるWebサービスのタイプを指定することもできます。たとえば、JAX-WS Webサービスを生成するには、<jws>子要素のtype="JAXWS"属性を設定します。

注意:

標準的ではありませんが、JWSファイルをコーディングして、javax.ejb.SessionBeanを明示的に実装できます。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発ステートレス・セッションEJBを実装する必要がある場合を参照してください。ただし、これは標準的ではないので、この項では、jwscはWebアプリケーションWARファイルにWebサービスをパッケージ化し、EJB固有の情報は必要な場合にのみ生成されるものとします。

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

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

通常、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スキーマ・ベースである必要があります。

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

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

Taskdefのクラス名

次のコードは、Antビルド・ファイルに記述する必要があるjwscクラス名のタスク定義です。

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

子要素

次に示すのは、jwsc Antタスクの子要素の階層です。

<jwsc> {1}
   <jws> {0 or more}
      <WLHttpTransport> {0 or 1}
      <WLHttpsTransport> {0 or 1}
      <jmstransportservice> {0 or 1} -- JAX-WS web services only
      <WLJMSTransport> {0 or 1} -- JAX-RPC web services only
      <clientgen> {0 or more}
      <descriptor> {0 or more}
   <module> {0 or more}
      <jws> {0 or more}
         <WLHttpTransport> {0 or 1}
         <WLHttpsTransport> {0 or 1}
         <jmstransportservice> {0 or 1} -- JAX-WS web services only
         <WLJMSTransport> {0 or 1} -- JAX-RPC web services only
      <clientgen> {0 or more}
      <descriptor> {0 or more}
      <jwsfileset> {0 or more}
   <binding> {0 or more}

jwsc Antタスクには、様々な属性と3つの子要素があります。

  • <jws>要素: <jwsc>または<module>の子要素として使用されます。次の子要素で使用されるトランスポート(HTTP、HTTPSまたはJMS)を定義します。

    詳細は、「jws」を参照してください

  • <module>要素: 1つ以上のJWSファイル(<jws>要素でも指定される)を、単一のモジュール(WARファイル)にグループ化します。<module>を指定しない場合、各JWSファイルは、各自のモジュールまたはWARファイルにパッケージ化されます。詳細は、「module」を参照してください

  • <binding>要素: カスタム・バインディング情報を指定します。詳細は、「binding」を参照してください

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

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

次の各項では、jwsc Antタスク内の子要素についてそれぞれ詳細に説明します。

binding

<binding>子要素は、次のいずれかを指定するために使用します。

<binding>要素は、標準のAnt <Fileset>要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストの詳細は、http://ant.apache.org/manual/Types/fileset.htmlにある、Fileset要素に関するApache Antのドキュメントを参照してください。

注意:

<binding>子要素は、<jws>要素のcompliedWsdl属性を指定した場合は無効になります。

clientgen

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

  • 呼出しの対象となる特定のWebサービスに対するStubおよびServiceインタフェース実装のJavaクラス。

  • WSDLファイルで指定されたユーザー定義XMLスキーマ・データ型のJavaクラス。

  • JAX-RPCの場合、Javaのユーザー定義のデータ型と、WSDLファイル内で指定されたそのデータ型に対応するXMLスキーマ型の間のマッピングに関する情報を格納するJAX-RPCマッピング・デプロイメント記述子ファイル。

この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<clientgen>子要素を使用できます。

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

表2-3 <clientgen>要素の属性

属性 説明 必須? JAX-RPC/JAX-WS/両方

autoDetectWrapped

jwsc Antタスクでドキュメント・リテラルWebサービスのパラメータと戻り値の型がwrappedbareかを判別するかどうかを指定します。

WSDLファイルを解析してクライアント・スタブを作成する場合、jwsc Antタスクは、XMLスキーマ要素の名前や操作とパラメータの名前などに基づいて、ドキュメント・リテラルWebサービスがwrappedパラメータを使用するかbareパラメータを使用するかを判別し、戻り値の型を識別します。これらのコンポーネント名がどのように照合されるかによって、jwsc Antタスクは、パラメータがwrappedかbareかを推定します。ただし、Antタスクがパラメータの型を常にbareであると推定するようにしたい場合もあります。この場合、autoDetectWrapped属性をFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

いいえ

JAX-RPC

catalog

外部XMLカタログ・ファイルを指定します。

『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

いいえ

JAX-WS

handlerChainFile

JWSファイルがWebサービスを呼び出すときに実行されるクライアント側SOAPメッセージ・ハンドラを記述するXMLファイルの名前を指定します。

ファイルで指定された各ハンドラは、以下のタイミングで2回実行されます。

  • JWSが、呼び出されたWebサービスにSOAPリクエストを送信する直前

  • JWSが、呼び出されたWebサービスからSOAPレスポンスを受信した直後

この属性を指定しなかった場合、WebサービスがJWSファイルから呼び出されるとき、クライアント側のハンドラはCLASSPATHにあっても実行されません。

クライアント側のSOAPメッセージ・ハンドラの作成の詳細および例は、Oracle Fusion Middleware Oracle WebLogic Server JAX-RPC Webサービスの開発クライアント側のSOAPメッセージ・ハンドラの作成と使用を参照してください。

いいえ

JAX-RPC

generateAsyncMethods

jwsc Antタスクが、JWSファイルがWebサービス操作を非同期的に呼び出すために使用できるメソッドを、生成されたスタブに格納するかどうかを指定します。

たとえば、True(デフォルト値)を指定し、WSDLにgetQuoteというWebサービス操作がある場合、jwsc AntタスクはgetQuoteAsyncというメソッドもスタブに生成するので、JWSファイルは元のgetQuoteメソッドのかわりにこのメソッドを使用できます。この非同期的な種類の操作には、JWSファイルが非同期プロパティやコンテキスト変数などを設定するための追加パラメータ(weblogic.wsee.async.AsyncPreCallContextデータ型)も含まれます。

注意: JWSファイル内で呼び出されるWebサービス操作が一方向としてマークされている場合、generateAsyncMethods属性を明示的にTrueに設定しても、jwsc Antタスクは非同期的な種類のスタブを生成しません。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueで、非同期メソッドが生成されることを示します。

いいえ

JAX-RPC

generatePolicyMethods

jwsc Antタスクが、WS-Policyのロード・メソッドを、生成されたスタブに格納するかどうかを指定します。これらのメソッドをJWSファイル内で使用すると、Webサービスを呼び出す際にローカルWS-Policyファイルをロードできます。

Trueを指定した場合、getXXXSoapPort()(XXXはWebサービス名)という4種類のメソッドが、Serviceインタフェースの拡張機能として、生成されたクライアント・スタブに追加されます。JWSファイルでこれらのメソッドを使用するようにプログラミングすると、Webサービス自体でデプロイされたWS-Policyファイルを適用するかわりに、ローカルWS-Policyファイルをロードして適用できます。インバウンド、アウトバウンド、またはその両方のSOAPメッセージのいずれにローカルWS-Policyファイルを適用するか、InputStreamとURIのどちらからローカルWS-Policyファイルをロードするかを指定できます。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、追加メソッドは生成されないことを示します。

詳細は、Oracle WebLogic Server WebLogic Webサービスの保護クライアント側セキュリティWS-Policyファイルの使用を参照してください。

いいえ

JAX-RPC

includeGlobalTypes

jwsc Antタスクで、Webサービス操作で明示的に使用されているデータ型だけでなく、WSDL内のすべてのXMLスキーマ・データ型のJava表現を生成するかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はFalseで、jwscが、積極的に使用されているXMLデータ型のみのJava表現を生成することを意味します。

いいえ

JAX-RPC

jaxRPCWrappedArrayStyle

jwsc Antタスクが、WSDLファイルのXMLスキーマのデータ型と同じJavaを生成しているときに、maxOccurs属性がunboundedに指定された単一の要素を持つ単一の親シーケンスを格納したXML複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前のJava構造体をデフォルトで生成します。かわりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

いいえ

JAX-RPC

packageName

生成されたクライアント・インタフェースとスタブ・ファイルをパッケージ化するパッケージ名。

パッケージ名には小文字を使用することが推奨されます。

はい

両方

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タスクはエラーを返します。

JAX-RPC

wsdl

クライアント・アーティファクトの生成が必要な(WebLogicまたは非WebLogic) Webサービスを記述するWSDLのフルパス名またはURL。

生成されたスタブ・ファクトリ・クラスは、デフォルト・コンストラクタ内のこの属性の値を使用します。

はい

両方

descriptor

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

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

  • web.xml

  • weblogic.xml

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

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

注意:

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

JAX-RPC Webサービスを生成する場合のみ<descriptor>子要素を使用できます。この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

表2-4 <descriptor>要素の属性

属性 説明 必須?

file

既存のデプロイメント記述子ファイルのフルパス名(絶対パスまたはbuild.xmlファイルを格納するディレクトリを基準とする相対パス)。デプロイメント記述子は、DTDベースではなく、XMLスキーマ・ベースである必要があります。

jwsc Antタスクは、このファイルを直接更新しませんが、新規に生成したWebアプリケーションにコピーします。

はい

jmstransportservice

注意:

<jmstransportservice>子要素は、JAX-WS Webサービスでのみ、SOAP over JMSトランスポートを構成するために使用できます。JAX-RPC Webサービスに対するSOAP over JMSトランスポートの構成の詳細は、「WLJMSTransport」を参照してください

『Oracle WebLogic Server JAX-WS Webサービスの開発』で説明されているように、SOAP over JMSトランスポートをWebサービスの信頼できるメッセージングまたはストリーミングSOAPアタッチメントと一緒には使用できません。

<jmstransportservice>要素は、JAX-WS Webサービスおよびクライアントで、SOAP over JMSトランスポートを有効化および構成するために使用します。

SOAP over JMSトランスポートを使用し、HTTP接続ではなくJMSの宛先によりWebサービスおよびクライアントが通信を行う場合、次のような利点があります。

  • 信頼性

  • スケーラビリティ

  • サービス品質

SOAP over JMSトランスポートの使用方法の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発接続プロトコルとしてのSOAP Over JMSトランスポートの使用を参照してください。

<jmstransportservice>要素は、jwsc Antタスクの<jws>要素内の子要素です。1つのJWSファイルにつき、0個または1個の<jmstransportservice>要素を指定できます。

オプションで、<jmstransportservice>要素を使用して、宛先名、宛先タイプ、配信モード、リクエスト・キューとレスポンス・キュー、および他のJMSトランスポート・プロパティを構成できます。サポートされているJMSトランスポート・プロパティの完全な一覧は、Oracle WebLogic Server JAX-WS Webサービスの開発JMSトランスポートのプロパティの構成を参照してください。

次の例では、jwscを使用してWebサービス・クライアントを生成するときに、JMSトランスポートを有効化および構成する方法を示します。

<?xml version="1.0"?>
<project name="jaxws.jms.jwsc" default="all">
   <import file="../build-jms.xml"/>
      <path id="client.class.path">
         <pathelement path="${clientclasses.dir}"/>
         <pathelement path="${java.class.path}"/>
      </path>
   <target name="jwsc">
      <jwsc srcdir="." sourcepath="client" destdir="${output.dir}" debug="on" 
            keepGenerated="yes">
         <jws file="JWSCEndpoint.java" type="JAXWS" explode="true">
            <jmstransportservice
               targetService="JWSCEndpointService"
               destinationName="com.oracle.webservices.api.jms.RequestQueue"
               jndiInitialContextFactory="weblogic.jndi.WLInitialContextFactory"
               jndiConnectionFactoryName="weblogic.jms.XAConnectionFactory"
               jndiURL="t3://localhost:7001"
               deliveryMode="PERSISTENT"
               timeToLive="60000"
               priority="1"
               messageType="TEXT"
               activationConfig = "transAttribute=Supports"
            />
      </jws>
   </jwsc>
</target>
</project>
jws

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

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

  • jwsc Antタスクの直接の子要素。この場合、jwscは各JWSファイルに個別のWARファイルを生成します。一般的に、jwsc Antタスクに対してJWSファイルを1つのみ指定している場合にこの方法を使用します。

  • jwscの子である<module>要素の子要素。この場合、jwscは、<module>要素内でグループ化されているすべてのJWSファイルの生成されたコードおよびアーティファクトをすべて含むWARファイルを1つ生成します。この方法は、共通のJavaデータ型など、サポート・ファイルをすべてのJWSファイルで共有する場合に有効です。

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

この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<jws>子要素を使用できます。

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

表2-5 jwsc Antタスクの<jws>要素の属性

属性 説明 必須? JAX-RPC/JAX-WS/両方

compiledWsdl

既存のWSDLファイルを基にwsdlc Antタスクで生成されたJARファイルのフルパス名。JARファイルには、このWSDLに基づいてWebサービスを実装するJWSインタフェース・ファイルが含まれます。また、Java表現とXML表現の間でパラメータと戻り値を変換するためのデータ・バインディング・アーティファクトも含まれます。WSDLのXMLスキーマ・セクションは、データのXML表現を定義します。

この属性は、まずwsdlc Antタスクを使用して、生成されたJWSインタフェースを実装するJWSファイルとともにJARファイルを生成する「WSDLファイルから開始する」ケースでのみ使用します。JWS実装クラスをビジネス・ロジックで更新したら、この更新したJWS実装ファイルをfile属性で指定し、jwsc Antタスクを実行してデプロイ可能なWebサービスを生成します。

JWSファイルを最初から記述し、Webサービスを記述したWSDLファイルがWebLogic Webサービス・ランタイムによって生成される「Javaから開始する」ケースでは、compiledWsdl属性を使用しません。

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

「WSDLから開始する」ケースでのみ必須

両方

contextPath

Webサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

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

financialが、このWebサービスのコンテキスト・パスです。

この属性の値は、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>に適用されます。

はい

両方

generateWsdl

生成されたWARファイルにWEB-INFディレクトリのWSDLファイルを含めるかどうかを指定します。この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、この場合jwscは生成されたWARファイルにWSDLファイルを含めません。

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

はい

JAX-WS

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)

jwscおよび<module>の両方の子として使用された場合に<jws>に適用されます。

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

XMLBeansデータ型をパラメータまたは戻り値として使用する場合は必須

JAX-RPC

name

生成されたWARファイル(explode属性がtrueに設定されている場合は展開ディレクトリ)で、デプロイ可能なWebサービスを格納しているファイルの名前。実際のJARアーカイブ・ファイルが生成されると、ファイル名には.war拡張子が付けられます。

この属性のデフォルト値は、file属性で指定したJWSファイルの名前です。

<jws>jwscの直接の子である場合にのみ適用されます。

いいえ

両方

type

生成するWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は次のとおりです:

  • JAXWS

  • JAXRPC

デフォルト値はJAXRPCです。

いいえ

両方

wsdlOnly

このJWSファイルに対してWSDLファイルのみが生成されるように指定します。

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

WSDLは、destDirディレクトリに生成されます。ファイル名はJWS_ClassNameService.wsdl(JWS_ClassNameはJWSクラス名)です。JWS_ClassNameServiceは、生成されたWSDLファイル内のWebサービスの名前にもなります。

この属性をtrueに設定し、explode属性をfalse (これもデフォルト値)に設定すると、jwscexplode属性を無視し、常に展開形式で出力を生成します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、WSDLファイルだけでなく、すべてのアーティファクトが生成されることを示します。

<jws>jwscの子である場合にのみ適用されます。

いいえ

両方

jwsfileset

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

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

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<jwsfileset>子要素を使用できます。

この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

表2-6 <jwsfileset>要素の属性

属性 説明 必須? JAX-RPC/JAX-WS/両方

scrdir

jwsc Antタスクが、コンパイルするJWSファイルを検索するディレクトリ(セミコロン区切り)を指定します。

はい

両方

type

見つかった各JWSファイルに対して生成するWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は次のとおりです:

  • JAXWS

  • JAXRPC

デフォルト値はJAXRPCです。

いいえ

両方

module

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

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

モジュール内のWebサービスは、同じcontextPathを持つ必要がありますが、serviceURIは一意である必要があります。共通のcontextPathを設定するには、<module>要素の属性として指定するか、各Webサービスの@WLXXXTransportアノテーション(JAX-RPCの場合のみ)または<WLXXXTransport>要素がcontextPath属性について同じ値を持つようにします。jwsc Antタスクは、これらの値を確認し、一意でない場合にエラーを戻します。コンテキスト・パスの定義方法の詳細は、次のドキュメントを参照してください。

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

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<module>子要素を使用できます。

この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

表2-7 jwsc Antタスクの<module>要素の属性

属性 説明 必須? JAX-RPC/JAX-WS/両方

contextPath

このモジュールに含まれるすべてのWebサービスのコンテキスト・パス(コンテキスト・ルート)。

たとえば、WebLogic WebサービスのデプロイされたWSDLが次のとおりであるとします。

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

financialが、このWebサービスのコンテキスト・パスです。

この属性の値は、このモジュールに含まれるJWSファイルで設定されているその他のコンテキスト・パスをオーバーライドします。これには、<jws>のトランスポート関連の子要素の他に、トランスポート関連のJWSアノテーションも含まれます。

この属性のデフォルト値はJWSファイルの名前(拡張子なし)です。たとえば、JWSファイルがHelloWorldImpl.javaの場合、そのcontextPathのデフォルト値はHelloWorldImplになります。

コンテキスト・パスの定義方法の詳細は、次のドキュメントを参照してください。

1つのWAR内の複数のWebサービスのコンテキスト・パスを同じにする場合にのみ必須です。

両方

ejbWsInWar

EJBベースのWebサービスを、JARファイルではなくWARファイルにパッケージ化するかどうかを指定します。この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、EJBベースのWebサービスはJARファイルにパッケージ化されます。

いいえ

JAX-WS

explode

デプロイ可能なWebサービスを格納する生成済のWARファイルを、展開ディレクトリ形式にするかどうかを指定します。この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、jwscは実際のWARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

いいえ

両方

generateWsdl

生成されたWARファイルにWSDLファイルを含めるかどうかを指定します。この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、jwscは実際のWARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

いいえ

JAX-WS

name

生成されたWARファイル(explode属性がtrueに設定されている場合は展開ディレクトリ)で、デプロイ可能なWebサービスを格納しているファイルの名前。実際のWARアーカイブ・ファイルが生成されると、ファイル名には.war拡張子が付けられます。

この属性のデフォルト値はjwsです。

いいえ

両方

wsldOnly

<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

<jws>要素のWLHttpTransport子要素では、HTTPトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションと、生成されたWSDLのポート名を指定します。

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

JAX-WS Webサービス、JAX-RPC Webサービスのいずれを生成する場合でも、<WlHttpTransport>子要素を使用できます。

この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

表2-8 <jws>要素の<WLHttpTransport>子要素の属性

属性 説明 必須? JAX-RPC/JAX-WS/両方

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です。

JAX-WSの場合、この属性のデフォルト値は@WebServiceアノテーションのserviceName要素です(指定されている場合)。それ以外の場合、拡張子を除いたJWSファイルの名前の後にServiceを付けたものになります。たとえば、@WebServiceアノテーションのserviceName要素が指定されておらず、JWSファイルの名前がHelloWorldImpl.javaである場合、そのserviceUriのデフォルト値はHelloWorldImplServiceになります。

JAX-RPCの場合、この属性のデフォルト値は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要素では、セキュリティで保護されたHTTPSトランスポートでWebサービスを呼び出すために使用するコンテキスト・パスおよびURLのサービスURIセクションと、生成されたWSDLのポート名を指定します。

<WLHttpsTransport>要素は<jws>要素の子です。<WLHttpsTransport>要素は、特定のJWSファイルに対して1つ指定できます(指定しなくても構いません)。<WlHttpsTransport>子要素を使用できるのは、JAX-RPC Webサービスを生成する場合のみです。

この要素がjwsc要素階層内のどこに位置するかについては、「属性」の最初の表を参照してください。

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

表2-9 <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です。

JAX-WSの場合、この属性のデフォルト値は@WebServiceアノテーションのserviceName要素です(指定されている場合)。それ以外の場合、拡張子を除いたJWSファイルの名前の後にServiceを付けたものになります。たとえば、@WebServiceアノテーションのserviceName要素が指定されておらず、JWSファイルの名前がHelloWorldImpl.javaである場合、そのserviceUriのデフォルト値はHelloWorldImplServiceになります。

JAX-RPCの場合、この属性のデフォルト値は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>子要素は、JAX-RPC Webサービスについてのみ、SOAP over JMSトランスポートを構成するために使用できます。JAX-WS Webサービスに対するJMSトランスポートの構成の詳細は、「jmstransportservice」を参照してください

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

<WLJmsTransport>要素は<jws>要素の子です。<WLJmsTransport>要素は、特定のJWSファイルに対して1つ指定できます。

この要素がjwsc要素階層内のどこに位置するかについては、属性に関する項の最初の表を参照してください。この要素の使用例については、「例」を参照してください。

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

表2-10 <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です。

JAX-WSの場合、この属性のデフォルト値は@WebServiceアノテーションのserviceName要素です(指定されている場合)。それ以外の場合、拡張子を除いたJWSファイルの名前の後にServiceを付けたものになります。たとえば、@WebServiceアノテーションのserviceName要素が指定されておらず、JWSファイルの名前がHelloWorldImpl.javaである場合、そのserviceUriのデフォルト値はHelloWorldImplServiceになります。

JAX-RPCの場合、この属性のデフォルト値は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トランスポートの使用の詳細は、Oracle Fusion Middleware Oracle WebLogic Server JAX-RPC Webサービスの開発接続プロトコルとしてのJMSトランスポートの使用を参照してください。

この属性を指定しない場合のデフォルト値はweblogic.wsee.DefaultQueueです。その場合でも、Webサービスのデプロイ先となるWebLogic Serverインスタンスで、このJMSキューを作成する必要があります。

いいえ

connectionFactory

JMSトランスポート用に構成済のJMS接続ファクトリのJNDI名。

この属性のデフォルト値は、WebLogic ServerインスタンスのデフォルトのJMS接続ファクトリです。

いいえ

属性

次の項では、jwsc Antタスクの属性について説明します。

WebLogic固有のjwsc属性

次の表は、WebLogic固有のjwsc属性をまとめたものです。

表2-11 jwsc Ant Taskの属性

属性 説明 必須? JAX-RPC/JAX-WS/両方

applicationXml

エンタープライズ・アプリケーションのapplication.xmlデプロイメント記述子の完全修飾名およびフルパスを指定します。既存のファイルを指定した場合、jwsc Antタスクは、Webサービス情報を含めるようにそのファイルを更新します。ただし、jwscは、変更されたapplication.xmlファイルをdestDirに自動的にコピーしません。このファイルをdestDIRに手動でコピーする必要があります。

ファイルが存在しない場合、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サービスが生成されることを示します。

いいえ

JAX-RPC

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では非推奨です。

いいえ

非推奨の属性のため、適用不可

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属性も定義できます。各属性の詳細は、http://ant.apache.org/manual/にあるAntのドキュメントを参照してください。

  • bootclasspath

  • bootClasspathRef

  • classpath

  • classpathRef

  • compiler

  • debug

  • debugLevel

  • depend

  • deprecation

  • destdir

  • encoding

  • extdirs

  • failonerror

  • fork

  • includeantruntime

  • includejavaruntime

  • listfiles

  • memoryInitialSize

  • memoryMaximumSize

  • nowarn

  • optimize

  • proceed

  • source

  • sourcepath

  • sourcepathRef

  • tempdir

  • verbose

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

  • <SourcePath>

  • <Classpath>

  • <Extdirs>

jwsc Antタスクの<jws>子要素および<module>子要素と一緒に、以下の標準のAnt要素を使用できます。

  • <FileSet>

  • <ZipFileSet>

次の例では、jwsc Antターゲットを構築する方法を示します。その他、WebLogic Webサービスを繰り返し開発する際に役立つcleandeployclientrunなどの様々なターゲットを含むbuild.xmlファイルの完全な例については、Oracle WebLogic Server JAX-WS Webサービスの開発またはOracle Fusion Middleware Oracle WebLogic Server JAX-RPC Webサービスの開発を参照してください。

例1   基本的なjwsc Antターゲットの構築

次のサンプルでは、非常に単純なjwscの使用方法を示します。この例では、TestServiceImpl.javaというJWSファイルが、build.xmlファイルが保存されているディレクトリのsrc/examples/webservices/jwscサブディレクトリにあります。jwsc Antタスクは、Webサービスのアーティファクトをoutput/TestEarサブディレクトリに生成します。jwsc Antタスクでは、WebサービスJARファイルに加え、エンタープライズ・アプリケーションを記述したapplication.xmlファイルもoutput/TestEar/META-INFディレクトリに生成されます。

  <target name="build-service">
    <jwsc
      srcdir="src"
      destdir="output/TestEar">
      <jws file="examples/webservices/jwsc/TestServiceImpl.java" />
    </jwsc>
  </target>
例2   JAX-WS Webサービスの生成

デフォルトでは、jwsc AntタスクはJAX-RPC仕様に準拠したWebサービスを生成します。次の例に示すように、<jws>子要素のtype属性を使用して、生成されるWebサービスのタイプを制御できます。この例では、JAX-WS Webサービスが生成されます。

  <target name="build-service8">
    <jwsc
      srcdir="src"
      destdir="${ear-dir}">
      <jws file="examples/webservices/jaxws/JaxWsImpl.java"
           type="JAXWS"
      />
    </jwsc>
  </target>
例3   複数のJWSファイルの指定

この例は、複数のJWSファイルを指定する方法を示しています。これにより、Webサービスがそれぞれ個別のWebアプリケーションWARファイルにパッケージ化されますが、すべて同じエンタープライズ・アプリケーションの一部としてデプロイされます。

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

  <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"  
         type="JAXWS"/>
      <jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java"
         type="JAXWS"/>
      <jws file="examples/webservices/jwsc/SecondTestServiceImpl.java"      
         type="JAXWS"/>
    </jwsc>
  </target>

例4   複数のWebサービスを単一のWARファイルにパッケージ化する方法

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

 <target name="build-service3">
   <jwsc
     srcdir="src"
     destdir="output/TestEar" >
     <module contextPath="test" name="myJar" >
      <jws file="examples/webservices/jwsc/TestServiceImpl.java" 
           type="JAXWS"/>
      <jws file="examples/webservices/jwsc/AnotherTestServiceImpl.java" 
           type="JAXWS"/>
      <jws file="examples/webservices/jwsc/SecondTestServiceImpl.java" 
           type="JAXWS"/>
     </module>
   </jwsc>
 </target>
例5   複数のトランスポートの構成

次の例では、すべてのトランスポート(HTTP、HTTPS、JMS)を使用してJAX-RPC Webサービスを呼び出す方法を示します。

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

 <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>
例6   複数の<jws>要素を単一の<module>要素にグループ化する方法

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

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

<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>
例7   ファイル・セットの指定

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

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

  <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>
例8   既存のWebアプリケーション・デプロイメント記述子の更新

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

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

<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>

<jws>要素または<jwsfileset>要素のtype属性を指定できます。

wsdlc

wsdlc Antタスクは、既存のWSDLファイルを基に、WSDLファイルで記述されたWebサービスの部分的なJava実装を提供する一連のアーティファクトを生成します。type属性を指定することで、JAX-WSまたはJAX-RPCのいずれかに基づいた部分的な実装を生成できます。

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

wsdlc Antタスクによって、次のアーティファクトが生成されます。

  • WSDLファイルで記述されたWebサービスを実装するJWSインタフェース・ファイル(サービス・エンドポイント・インタフェース)。インタフェースには、Webサービス操作を実装する詳細なメソッド・シグネチャ、およびWebサービスのその他の側面を実装するJWSアノテーション(@WebService@SOAPBindingなど)が含まれます。このファイルは変更しないでください。

  • Webサービスのパラメータと戻り値をXML表現とJava表現の間で変換するために、WebLogic Serverによって使用されるデータ・バインディング・アーティファクト。データ型のXMLスキーマはWSDLで指定され、Java表現はwsdlc Antタスクで生成されます。このファイルは変更しないでください。

  • 生成された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タスクはエラーを戻します。

  • weblogic.jws.Policyアノテーションまたはweblogic.jws.Policiesアノテーションを使用して、JWS実装ファイル内のWebサービスにポリシーをアタッチできません。

    WSDLでポリシーがまだ定義されていない場合は、WebLogic Server管理コンソールを使用してデプロイされたWebサービスにポリシーをアタッチできます。

  • また、@WebServiceアノテーションで指定できるのは、serviceName属性とendpointInterface属性のみ。まれに、WSDLファイルに複数の<service>要素が指定されていることがあります。その場合は、serviceName属性を使用して、wsdlc Antタスクで使用していたものとは別の<service> WSDL要素を指定します。wsdlc Antタスクで生成されたJWSインタフェースを指定するには、endpointInterface属性を使用します。

  • JAX-RPC Webサービスに対しては、必要に応じてWebLogic固有のJWSアノテーションを指定できます。JAX-WS Webサービスでは、WebLogic固有のJWSアノテーションは使用できません。

  • JAX-WSに対して、必要に応じて、JAX-WS (http://jax-ws.java.netの224)、JAXB (http://jcp.org/en/jsr/detail?id=222のJSR 222)またはCommon (http://jcp.org/en/jsr/detail?id=250のJSR 250)アノテーションを指定できます。

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サービスをデプロイする際に現れると予想されます。

以下のガイドラインで説明するように、生成される複合データ型のJavaパッケージ名は、生成される部分的な実装のタイプ(JAX-WSまたはJAX-RPC)に応じて異なります。

  • JAX-WSの場合は、packageName属性を指定すると、すべてのアーティファクト(Java複合データ型、JWSインタフェース、JWSインタフェース実装)がこのパッケージに生成されます。この場合に、生成されるJava複合データ型のパッケージ名を変更するには、wsdlc Antタスクの<binding>子要素を使用してカスタム・バインディング宣言ファイルを指定します。カスタム・バインディング宣言ファイルの作成については、Oracle WebLogic Server JAX-WS Webサービスの開発JAXBデータ・バインディングの使用を参照してください。

  • JAX-RPCの場合は、wsdlc AntタスクのpackageName属性を指定すると、生成されるJWSインタフェースおよび実装のみがこのパッケージに含まれます。ただし、生成されるJava複合データ型のパッケージ名は、packageName属性を指定しているかどうかに関係なく、常にXSDスキーマ型のネームスペースに対応します。

jwscと組み合せたwsdlc Antタスクの完全な使用例については、Oracle WebLogic Server JAX-WS Webサービスの開発WSDLファイルからのWebサービスの作成を参照してください。

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

Taskdefのクラス名

    <taskdef name="wsdlc"
           classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>

子要素

wsdlc Antタスクには、次のWebLogic固有の子要素があります。

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

binding

<binding>子要素は、次のいずれかを指定するために使用します。

<binding>要素は、標準のAnt <Fileset>要素に似ており、同じ属性をすべて持ちます。指定可能な属性の完全なリストの詳細は、http://ant.apache.org/manual/Types/fileset.htmlにある、Fileset要素に関するApache Antのドキュメントを参照してください。

xmlcatalog

<xmlcatalog>子要素には、組込みXMLカタログのIDを指定します。要素の構文は次のとおりです。

<xmlcatalog refid="id"/>

<xmlcatalog>によって参照されるIDは、組込みXMLカタログのIDと一致していなければなりません。build.xmlファイルにXMLカタログを組み込むには、次の構文を使用します。

<xmlcatalog id="id">
     <entity publicid="public_id" location="uri"/>
</xmlcatalog>

上の構文で、public_idには元のXMLリソース(WSDLまたはXSD)のパブリック識別子を指定し、uriには置換XMLリソースを指定します。

以下の例は、XMLカタログを組み込んでwsdlcを使用して参照する方法を示しています。関連するコード行は太字で示しています。

<target name="wsdlc">
    <wsdlc
        srcWsdl="wsdl_files/TemperatureService.wsdl"
        destJwsDir="output/compiledWsdl"
        destImplDir="output/impl"
        packageName="examples.webservices.wsdlc" 
        <xmlcatalog refid="wsimportcatalog"/>
    </wsdlc>
</target>
<xmlcatalog id="wsimportcatalog">
    <entity publicid="http://helloservice.org/types/HelloTypes.xsd"
             location="${basedir}/HelloTypes.xsd"/>
</xmlcatalog>

『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

属性

次の各項の中の表で、wsdlc Antタスクの属性について説明します。

WebLogic固有のwsdlc属性

次の表では、WebLogic固有のwsdlc属性について説明します。

表2-12 wsdlc AntタスクのWebLogic固有の属性

属性 説明 データ型 必須? JAX-RPC/JAX-WS/両方

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です。

ブール

いいえ

JAX-RPC

catalog

外部XMLカタログ・ファイルを指定します。『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

String

いいえ

両方

destImplDir

途中まで作成済のJWS実装ファイルの生成先となるディレクトリ。

生成されたJWSファイルは、生成されたJWSインタフェース・ファイル(JARファイル内に格納)を実装します。メソッドを目的どおりに実行するようにそのメソッドにJavaコードを追加して、このJWS実装ファイルを更新し、後でjwsc Antタスクに対してこの更新されたJWSファイルを指定して、デプロイ可能なWebサービスを生成します。

String

いいえ

両方

destJavadocDir

JWSインタフェースを記述するJavadocの生成先となるディレクトリ。

指定したWebサービスを実装するJWSインタフェース・ファイルを格納した、生成されたJARファイルを展開または更新することはできないので、生成されたこのJavadocからインタフェース・ファイルの詳細を入手してください。途中まで作成済のJWS実装ファイルとともにこのドキュメントを使用すると、部分的に生成されているWebサービスにビジネス・ロジックを追加できます。

String

いいえ

両方

destJwsDir

JWSインタフェース・ファイルおよびデータ・バインディング・アーティファクトを格納するJARファイルの生成先となるディレクトリ。

生成されるJARファイルの名前はWSDLFile_wsdl.jarです(WSDLFileはWSDLファイルのルート名)。たとえば、file属性に対して指定したWSDLファイルの名前がMyService.wsdlの場合、生成されたJARファイルはMyService_wsdl.jarとなります。

String

はい

両方

explode

生成されたJWSインタフェース・ファイルおよびデータ・バインディング・アーティファクトを格納する生成済のJARファイルを、展開ディレクトリ形式にするかどうかを指定します。

この属性の有効な値は、trueまたはfalseです。デフォルト値はfalseで、wsdlcは実際のJARアーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

ブール

いいえ

両方

jaxRPCWrappedArrayStyle

wsdlc Antタスクが、WSDLファイルのXMLスキーマのデータ型と同じJavaを生成しているときに、maxOccurs属性がunboundedに指定された単一の要素を持つ単一の親シーケンスを格納したXML複合型の存在が確認された場合、タスクは、親複合型または要素で最も下位の名前のJava構造体をデフォルトで生成します。かわりにリテラル配列を生成するようにタスクの動作を変更するには、jaxRPCWrappedArrayStyleFalseに設定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値はTrueです。

ブール

いいえ

JAX-RPC

packageName

生成されたJWSインタフェースおよび実装ファイルの生成先となるパッケージ。

この属性を指定しない場合、wsdlc Antタスクは、WSDLのtargetNamespaceに基づいてパッケージ名を生成します。

String

いいえ

両方

sortSchemaTypes

XSDファイルでは、名前付きのグローバル型と名前なしのローカル型の2つの複合型が定義されています。デフォルトでは、clientgenは名前なしのローカル型に対して独自の名前を自動的に生成しますが、様々なWSDLファイルをコンパイルする際に生成される名前は常に同一ではありません。

有効にすると、clientgenによって生成されるJavaファイル内の型名が同一になります。

ブール

いいえ

JAX-RPC

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を使用します。

String

WSDLファイルに複数の<binding>要素が格納されている場合のみ

JAX-RPC

srcPortName

JWSインタフェース・ファイルの生成元になるWSDLポートの名前。

この属性の値は、JWSインタフェース・ファイルの生成対象のWebサービス・ポートに対応する<port>要素のname属性の値に設定します。<port>要素は、WSDLファイル内の<service>要素の子要素です。

この属性を指定しない場合、wsdlcは、srcServiceNameによって指定されるサービスからJWSインタフェース・ファイルを生成します。

注意: JAX-RPCのために、この属性を指定した場合、srcServiceNameを同時に指定することはできません。

String

いいえ

両方

srcServiceName

JWSインタフェース・ファイルの生成元になるWebサービスの名前。

この属性の値は、JWSインタフェース・ファイルの生成対象のWebサービスに対応する<service>要素のname属性の値に設定します。

wsdlc Antタスクは、特定のWebサービスに対して、JWSエンドポイント・インタフェースとデータ・バインディングJARファイルを1つずつ生成します。これは、<service>要素に複数の<port>要素が含まれている場合、次の事項を満たす必要があることを意味します。

  • 各ポートのバインディングは同一か、お互い等価である必要があります。

  • 各ポートのトランスポートは異なっている必要があります。wsdlc Antタスクは、<address>子要素にリストされているアドレスからポートのトランスポートを判別します。WebLogic Webサービスでサポートされているトランスポートは3つ(JMS、HTTPおよびHTTPS)のみであるため、この属性で指定される<service>要素に対して指定できる<port>子要素は最高でも3つです。生成されたJWS実装ファイルには、対応する@WLXXXTransportアノテーションが含まれます(JAX-RPC Webサービスの場合)。

この属性またはsrcPortName属性のいずれも指定しない場合、WSDLファイルに含めることができる<service>要素は1つのみです。wsdlc Antタスクは、この1つのWebサービスからJWSインタフェース・ファイルとデータ・バインディングJARファイルを生成します。

注意: JAX-RPCに対して、この属性を指定した場合、srcPortNameを同時に指定することはできません。

String

いいえ

両方

srcWsdl

JWSインタフェースとデータ・バインディング・アーティファクトを格納するJARファイルの生成に使用するWSDLファイルの名前。

名前は、パス名(絶対パスまたはAnt build.xmlファイルを格納するディレクトリを基準とする相対パス)を含んでいる必要があります。

String

はい

両方

type

部分的な実装の生成対象であるWebサービスのタイプ(JAX-WSまたはJAX-RPC)を指定します。

有効な値は次のとおりです:

  • JAXWS

  • JAXRPC

デフォルト値はJAXRPCです。

String

いいえ

両方

typeFamily

生成するデータ・バインディング・クラスのタイプを指定します。

有効な値は次のとおりです:

  • TYLAR: Oracle WebLogic Server JAX-WS Webサービスの開発JAXBデータ・バインディングの使用で説明されている、標準のWebLogic Webサービス・データ・バインディング・クラスです。

  • XMLBEANS

  • XMLBEANS_APACHE

デフォルト値はTYLARです。

注意: JAXBデータ・バインディング・クラスは、常にJAX-WS Webサービスに対して生成されます。

String

いいえ

JAX-RPC

wlw81CallbackGen

WebLogic Workshop 8.1形式のコールバックを生成するかどうかを指定します。

この属性の有効な値は、TrueまたはFalseです。デフォルト値は、Falseです。

ブール

いいえ

JAX-RPC

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

WebLogic固有のwsdlc属性の他に、次に示す標準javac属性も定義できます。各属性の詳細は、http://ant.apache.org/manual/にあるAntのドキュメントを参照してください。

  • bootclasspath

  • bootClasspathRef

  • classpath

  • classpathRef

  • compiler

  • debug

  • debugLevel

  • depend

  • deprecation

  • destdir

  • encoding

  • extdirs

  • failonerror

  • fork

  • includeantruntime

  • includejavaruntime

  • listfiles

  • memoryInitialSize

  • memoryMaximumSize

  • nowarn

  • optimize

  • proceed

  • source

  • sourcepath

  • sourcepathRef

  • tempdir

  • verbose

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

  • <FileSet>

  • <SourcePath>

  • <Classpath>

  • <Extdirs>

次の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" 
        type="JAXWS" />
  </target>
  <target name="build-service">
    <jwsc
      srcdir="src"
      destdir="output/wsdlcEar">
      <jws file=
"examples/webservices/wsdlc/TemperatureService_TemperaturePortTypeImpl.java"
           compiledWsdl="output/compiledWsdl/TemperatureService_wsdl.jar" 
           type="JAXWS"/>
    </jwsc>
  </target>

この例では、wsdlc Antタスクは、TemperatureService.wsdlファイルを入力として取り、JWSインタフェースとデータ・バインディング・アーティファクトが格納されたJARファイルをoutput/compiledWsdlディレクトリに生成します。JARファイル名はTemperatureService_wsdl.jarです。このAntタスクでは、途中まで作成済のJWSインタフェースの実装を格納したJWSファイルをoutput/impl/examples/webservices/wsdlcディレクトリ(destImplDir属性の値と、指定したpackageNameに対応するディレクトリ階層を組み合せたもの)に生成します。

JAX-WSの場合、途中まで作成済のJWS実装ファイルの名前は、WSDLファイルの<service>要素とその内部の<port>要素の名前に基づきます。たとえば、サービス名がTemperatureServiceで、ポート名がTemperaturePortTypeの場合、生成されたJWS実装ファイルの名前はTemperatureService_TemperaturePortTypeImpl.javaとなります。

JAX-RPCの場合、途中まで作成済のJWS実装ファイルの名前は、最初の<service>要素に対応する<portType>要素の名前に基づきます。たとえば、portTypeの名前がTemperaturePortTypeの場合、生成されたJWS実装ファイルはTemperaturePortTypeImpl.javaという名前になります。

wsdlcを実行したら、途中まで作成済のJWS実装ファイルにビジネス・ロジックを追加します。通常、このJWSファイルをwsdlc出力ディレクトリから、アプリケーションのソース・コードを含む、より永続的なディレクトリに移動します。この例では、詳細に記述されたTemperatureService_TemperaturePortTypeImpl.java JWSファイルはsrc/examples/webservices/wsdlc/ディレクトリに移動しています。次に、jwsc Antタスクを実行し、このJWSファイルを通常通りに指定します。ここで指定する必要がある唯一の追加属性がcompiledWsdlです。この属性は、上記の例で示すようにwsdlc Antタスクで生成されたJARファイルを指します。これは、JARファイルにコンパイルされているオリジナルのWSDLファイルを使用するので、jwsc AntタスクでWSDLファイルを生成しないことを示します。

wsdlget

wsdlget Antタスクは、WSDLとそのインポートされたXMLリソースをローカル・ディレクトリにダウンロードします。

ダウンロード・ファイルは、アプリケーションのリモートXMLリソースをローカル・バージョンのリソースにリダイレクトするようにXMLカタログを定義し、そのカタログを参照する場合に使用することができます。

『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

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

Taskdefのクラス名

    <taskdef name="wsdlget"
           classname="weblogic.wsee.tools.anttasks.WsdlGetTask"/>

子要素

wsdlget Antタスクには、<xmlcatalog>というweblogic固有の子要素があります。<xmlcatalog>子要素には、組込みXMLカタログのIDを指定します。要素の構文は次のとおりです。

<xmlcatalog refid="id"/>

<xmlcatalog>によって参照されるIDは、組込みXMLカタログのIDと一致していなければなりません。build.xmlファイルにXMLカタログを組み込むには、次の構文を使用します。

<xmlcatalog id="id">
     <entity publicid="public_id" location="uri"/>
</xmlcatalog>

上の構文で、public_idには元のXMLリソース(WSDLまたはXSD)のパブリック識別子を指定し、uriには置換XMLリソースを指定します。

以下の例は、XMLカタログを組み込んでwsdlgetを使用して参照する方法を示しています。関連するコード行は太字で示しています。

<target name="wsdlget">
<wsdlget 
     wsdl="${wsdl}"
     destDir="${wsdl.dir}"
     catalog="wsdlcatalog.xml"/>
     <xmlcatalog refid="wsimportcatalog"/>
</wsdlget>
</target>
<xmlcatalog id="wsimportcatalog">
     <entity publicid="http://helloservice.org/types/HelloTypes.xsd"
             location="${basedir}/HelloTypes.xsd"/>
</xmlcatalog>

『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

属性

次の表では、wsdlget Antタスクの属性について説明します。

表2-13 wsdlget AntタスクのWebLogic固有の属性

属性 説明 データ型 必須? JAX-RPC/JAX-WS/両方

catalog

外部XMLカタログ・ファイルを指定します。『Oracle WebLogic Server JAX-WS Webサービスの開発』「XMLカタログの使用」を参照してください。

String

いいえ

両方

destDir

XMLリソースのコピー先のディレクトリ。

生成されたJWSファイルは、生成されたJWSインタフェース・ファイル(JARファイル内に格納)を実装します。メソッドを目的どおりに実行するようにそのメソッドにJavaコードを追加して、このJWS実装ファイルを更新し、後でjwsc Antタスクに対してこの更新されたJWSファイルを指定して、デプロイ可能なWebサービスを生成します。

String

はい

両方

wsdl

ローカル・ディレクトリにコピーするWSDLの名前。

String

いいえ

両方

次のAnt build.xmlファイルの抜粋は、wsdlget Antタスクを使用してWSDLとそのインポートされたXMLリソースをダウンロードする方法を示しています。XMLリソースは、Antタスクが実行されるディレクトリ内のwsdlフォルダに保存されます。

<target name="wsdlget"
     <wsdlget 
          wsdl="http://host/service?wsdl"
          destDir="./wsdl/"
     />
</target>