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サービスの呼出しに使用するクライアント側アーティファクトを生成します。

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クラス。

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

  • Jakarta Platform, Enterprise Editionクライアント・コンテナを使用しないスタンドアロンのJakartaクライアント。

  • Jakarta EEクライアント・コンテナを使用するJakarta EEクライアント(EJB、JSP、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>子要素を使用して、JAX-WSを指定します。

1つまたは複数のカスタマイズ・ファイル(JAX-WSの場合)。このファイルには、1つまたは複数の次の要素を指定します。

<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にのみ適用されます。

<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にのみ適用されます。

<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を使用して参照する方法を示しています。関連するコード行はboldで示しています。

<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カタログの使用」を参照してください。

属性

次の表で、JAX-WS Webサービスのclientgen AntタスクのWebLogic固有の属性について説明します。

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

属性 説明 データ型 必須?

catalog

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

String

いいえ

copyWsdl

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

ブール

いいえ

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が実行し続けることを意味します)。

ブール

いいえ

getRuntimeCatalog

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

ブール

いいえ

packageName

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

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

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

String

いいえ

type

クライアント・アーティファクトの生成対象であるWebサービスのタイプを指定します:

有効な値はJAXWSです。

String

いいえ

wsdl

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

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

String

はい

wsdlLocation

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

String

いいえ

次の例は、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-WS 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-WSに基づいていることを前提としています。次の例では、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.ws.security.auth.username"
                 value="juliet"/>
    <sysproperty key="javax.xml.ws.security.auth.password"
                 value="secret"/>
</clientgen>

wsdlc

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

デフォルトでは、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サービスにポリシーをアタッチできません。

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

  • JAX-WS Webサービスでは、WebLogic固有のJWSアノテーションは使用できません。

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

  • ただし、生成される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>子要素を使用して、JAX-WS Webサービスを指定します。

JAX-WSおよびJAXBカスタム・バインディング宣言を指定する1つ以上のカスタマイズ・ファイル(JAX-WSの場合)。『Oracle WebLogic Server JAX-WS Webサービスの開発』バインディング宣言を使用したXMLスキーマ-to-Javaマッピングのカスタマイズに関する項を参照してください。

<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を使用して参照する方法を示しています。関連するコード行はboldで示しています。

<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-3 wsdlc AntタスクのWebLogic固有の属性

属性 説明 データ型 必須?

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アーカイブ・ファイルを生成し、展開されたディレクトリ形式にはなりません。

ブール

いいえ

packageName

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

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

String

いいえ

srcPortName

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

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

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

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アノテーションが含まれます。

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

String

いいえ

srcWsdl

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

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

String

はい

type

部分的な実装の生成対象であるWebサービスのタイプを指定します:

有効な値はJAXWSです。

String

いいえ

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となります。

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を使用して参照する方法を示しています。関連するコード行はboldで示しています。

<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-4 wsdlget AntタスクのWebLogic固有の属性

属性 説明 データ型 必須?

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>