ナビゲーションをスキップ

WebLogic Web サービス プログラマーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

Web サービス Ant タスクとコマンドライン ユーティリティ

この章では、WebLogic Web サービスの Ant タスクと、それらの Ant タスクをベースとしたコマンドライン ユーティリティについて説明します。

 


WebLogic Web サービス Ant タスクとコマンドライン ユーティリティの概要

Ant は、make コマンドに似た Java ベースの構築ツールですが、その機能ははるかに強力です。Ant は、XML ベースのコンフィグレーション ファイル (デフォルトでは build.xml) を使用して Java で記述されたタスクを実行します。

BEA では、Web サービスの重要な部分 (シリアライゼーション クラス、クライアント JAR ファイル、web-services.xml ファイルなど) の生成や、WebLogic Web サービスのすべてのコンポーネントをデプロイ可能な EAR ファイルにパッケージ化するのに役立つ多数の Ant タスクを提供しています。

Apache Web サイトでは、EAR、WAR、EJB JAR ファイルをパッケージ化するための他の便利な Ant タスクも提供されています。詳細については、「http://jakarta.apache.org/ant/manual/」を参照してください。

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

prompt> ant -version 

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

属性ではなくフラグを使用してユーティリティの動作を指定することにより、一部の Ant タスクをコマンドライン ユーティリティとして実行することもできます。フラグの説明は、それに対応する属性の説明と完全に同じです。

警告 : Ant タスクのすべての属性が、それに相当するコマンドライン ユーティリティへのフラグとして使用可能なわけではありません。相当するコマンドラインを使用するときは、サポートされているフラグのリストを各 Ant タスクについて説明している節で確認してください。

これらの Ant タスクの使い方に関する詳細な例と説明については、「Ant タスクを使用した WebLogic Web サービスのアセンブル」を参照してください。

Web サービス Ant タスクとコマンドライン ユーティリティのリスト

次の表では、BEA が提供する Web サービス Ant タスクの概要と、それに対応するコマンドライン ユーティリティの名前について説明します。

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

Ant タスク

対応するコマンドライン ユーティリティ

説明

autotype

weblogic.webservice.autotype

WebLogic Web サービスへのパラメータまたは戻り値として使用される非組み込みデータ型に対して、シリアライゼーション クラス、Java 表現、XML スキーマ表現、およびデータ型マッピング情報を生成する。

clientgen

weblogic.webservice.clientgen

Web サービスの呼び出しに使用される、シン Java クライアントを含むクライアント JAR ファイルを生成する。

servicegen

なし

Web サービスをアセンブルするために必要な、すべての手順を実行するメイン Ant タスク。以下の手順が含まれる。

  • Web サービス デプロイメント記述子 (web-services.xml) の作成

  • EJB と Java クラスの参照およびコンポーネントのサポートに必要な非組み込みデータ型の生成

  • クライアント JAR ファイルの生成

  • デプロイ可能な EAR ファイルへの全コンポーネントのパッケージ化

source2wsdd

なし

Java クラスを使用して実装される WebLogic Web サービスの Java ソース ファイルから web-services.xml デプロイメント記述子ファイルを生成します。

wsdl2Service

なし

WSDL ファイルから WebLogic Web サービスのコンポーネントを生成する。それらのコンポーネントには、web-services.xml デプロイメント記述子ファイル、および Web サービスを実装する起点として使用できる Java ソース ファイルが含まれる。

wsdlgen

weblogic.webservice.wsdlgen

Web サービスを構成する EAR ファイルと WAR ファイルから WSDL ファイルを生成する。

wspackage

なし

WebLogic Web サービスのコンポーネントをデプロイ可能な EAR ファイルにパッケージ化する。

Web サービス Ant タスクを使用する

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

  1. 環境を設定します。
  2. Windows NT では、ドメイン ディレクトリにある setEnv.cmd コマンドを実行します。WebLogic Server ドメインのデフォルトの位置は、BEA_HOME\user_projects\domains\domainName です。BEA_HOME は BEA Products の最上位のインストール ディレクトリで、domainName はドメインの名前です。

    UNIX では、ドメイン ディレクトリにある setEnv.sh コマンドを実行します。WebLogic Server ドメインのデフォルトの位置は、BEA_HOME/user_projects/domains/domainName です。BEA_HOME は BEA Products の最上位のインストール ディレクトリで、domainName はドメインの名前です。

  3. Web サービス Ant タスクの呼び出しを含む build.xml というファイルを作成します。
  4. 次の例は、わかりやすくするために Web サービス Ant タスク servicegenclientgen の詳細が省かれた、簡単な build.xml ファイルです。

    <project name="buildWebservice" default="build-ear">
    <target name="build-ear">
    <servicegen attributes go here...>
    ...
    </servicegen>
    </target>
    <target name="build-client" depends="build-ear">
    <clientgen attributes go here .../>
    </target>
    <target name="clean">
    <delete>
    <fileset dir="."
    includes="example.ear,client.jar" />
    </delete>
    </target>
    </project>

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

  5. build.xml ファイルと同じディレクトリで ant と入力し、Ant タスクまたは build.xml ファイルで指定されたタスクを実行します。
  6. prompt> ant

WSDL および XML スキーマ ファイルの操作時におけるオペレーティング システムの大文字/小文字の区別の違い

WebLogic Web サービスの Ant タスクの多くには、WSDL または XML スキーマ ファイルなどのオペレーティング システム ファイルを指定するために使用できる属性があります。たとえば、clientgen Ant タスクの wsdl 属性を使用すると、Web サービスを記述する既存の WSDL ファイルから Web サービス固有のクライアント JAR ファイルを作成できます。

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 タスクを実行します。

WebLogic Ant タスク用のクラスパスを設定する

各 WebLogic Ant タスクには、新しいディレクトリまたは JAR ファイルを現在の CLASSPATH 環境変数に追加できるように、classpath 属性または要素を受け取ります。

次の例では、servicegen Ant タスクの classpath 属性を使用して CLASSPATH 変数に追加する方法を示します。

<servicegen destEar="myEJB.ear"
classpath="${java.class.path};my_fab_directory"
...
</servicegen>

次の例では、<classpath> 要素を使用して CLASSPATH に追加する方法を示します。

<servicegen ...>
<classpath>
<pathelement path="${java.class.path}" />
<pathelement path="my_fab_directory" />
</classpath>
...
</servicegen>

次の例では、WebLogic Web サービス Ant タスク宣言の外で CLASSPATH 変数を構築してから、<classpath> 要素を使用してタスク内でその変数を指定する方法を示します。

<path id="myid">
<pathelement path="${java.class.path}"/>
<pathelement path="${additional.path1}"/>
<pathelement path="${additional.path2}"/>
</path>
<servicegen ....>
<classpath refid="myid" />
...
</servicegen>

警告 : WebLogic Web サービスの Ant タスクは、標準の Ant プロパティ build.sysclasspath をサポートしています。このプロパティのデフォルト値は ignore です。つまり、この節の説明どおりに build.xml ファイルで CLASSPATH を明示的に設定すると、Ant タスクはシステム CLASSPATH (あるいは Ant 実行時に有効な CLASSPATH) を無視して、ユーザが明示的に設定した CLASSPATH を使用します。この場合、Ant タスクの実行に必要なすべてのクラスを CLASSPATH の設定に必ず含めてください。このデフォルト動作を変更するには、build.sysclasspath プロパティを last に設定しシステム CLASSPATH をユーザが指定した CLASSPATH の最後に連結するか、あるいは first に設定しユーザが指定した CLASSPATH をシステム CLASSPATH の最後に連結します。

警告 : build.sysclasspath プロパティの詳細については、Ant 関連のマニュアルを参照してください。

注意 : WebLogic Server の Java Ant ユーティリティでは WL_HOME\server\bin ディレクトリ (WL_HOME は WebLogic Platform がインストールされている最上位ディレクトリ) にある ant (UNIX) または ant.bat (Windows) コンフィグレーション ファイルを使用して各種の Ant 固有変数を設定します。これらの Ant 変数を更新する必要がある場合、使用しているオペレーティング システム用のコンフィグレーション ファイルを変更します。

Web サービス コマンドライン ユーティリティを使用する

Ant タスクに相当するコマンドライン ユーティリティを使用するには、次の手順に従います。

  1. 環境を設定します。
  2. Windows NT では、ドメイン ディレクトリにある setEnv.cmd コマンドを実行します。WebLogic Server ドメインのデフォルトの位置は、BEA_HOME\user_projects\domains\domainName です。BEA_HOME は BEA Products の最上位のインストール ディレクトリで、domainName はドメインの名前です。

    UNIX では、ドメイン ディレクトリにある setEnv.sh コマンドを実行します。WebLogic Server ドメインのデフォルトの位置は、BEA_HOME/user_projects/domains/domainName です。BEA_HOME は BEA Products の最上位のインストール ディレクトリで、domainName はドメインの名前です。

  3. コマンド シェル ウィンドウを開きます。
  4. 次の例に示すように、java コマンドを使用してユーティリティを実行します。
  5. prompt> java weblogic.webservice.clientgen \ 
    -ear myapps/myapp.ear \
    -serviceName myService \
    -packageName myservice.client \
    -clientJar myapps/myService_client.jar

    使い方メッセージを表示するには、引数なしでコマンドを実行します。

 


autotype

autotype Ant タスクは、Web サービス オペレーションのパラメータまたは戻り値として使用される非組み込みデータ型の以下のコンポーネントを生成します。

autotype でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、「servicegen および autotype Ant タスクでサポートされる非組み込みデータ型」を参照してください。

autotype Ant タスクでは、以下のいずれかの入力を指定できます。

destDir 属性を使用すると、生成されたコンポーネントが格納されるディレクトリの名前を指定できます。XML スキーマとデータ型マッピング情報は、types.xml というファイルに生成されます。このファイルは、既存の web-services.xml ファイルを非組み込みデータ型マッピング情報で手動更新するために使用するか、あるいは servicegen または clientgen Ant タスクの typeMappingFile 属性、または source2wsdd Ant タスクの typesInfo 属性と関連して使用できます。

警告 : autotypeservicegen、および clientgen Ant タスクによって生成されたシリアライゼーション クラスと Java および XML 表現はラウンドトリップできません。 詳細については、「生成されたデータ型コンポーネントの非ラウンドトリップ」を参照してください。

注意 : autotype Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.javaschema.JavaSchema です。

次の例は、Java クラスから非組み込みデータ型コンポーネントを作成する方法を示しています。

<autotype  javatypes="mypackage.MyType"
targetNamespace="http://www.foobar.com/autotyper"
packageName="a.package.name"
destDir="output" />

次の例は上記の例とほぼ同じですが、mypackage.MyType Java データ型の配列用の非組み込みデータ型コンポーネントを作成します。

<autotype  javaTypes="[Lmypackage.MyType;"
targetNamespace="http://www.foobar.com/autotyper"
packageName="a.package.name"
destDir="output" />

注意 : [Lclassname; という構文は、java.lang.Class.getName() メソッドに関するドキュメントに記載されている Java クラス命名規約に従っています。

次の例では、WSDL に対して autotype Ant タスクを使用する方法と、シリアライゼーション クラスの生成された Java ファイルを保持するよう指定する方法を示します。

<autotype  wsdl="wsdls/myWSDL"
targetNamespace="http://www.foobar.com/autotyper"
packageName="a.package.name"
destDir="output"
keepGenerated="True" />

属性

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

表 B-2 autotype Ant タスクの属性

属性

説明

データ型

必須/任意

destDir

生成されたコンポーネントが格納されるディレクトリの完全パス名。XML スキーマとデータ型マッピング情報は、types.xml というファイルに生成される。

String

必須

encoding

autotype Ant タスクが、Java データ型の XML 表現を記述する XML スキーマ ファイルを生成するときに、SOAP またはリテラルのどちらを使用するかを指定する。

エンコーディングは、配列などの複合 XML データ型を生成する場合に特に重要である。SOAP 配列は SOAP 以外の配列と構造的に異なるため、常に適切な状況で適切なものを使用することが重要である。

ドキュメント指向の Web サービスを作成する場合は、autotype でリテラル エンコーディングを使用するように指定する必要がある。そうしないと、ユーザが後で Web サービスを呼び出すときに相互運用性の問題が発生する可能性がある。

この属性は既存の Java データ型から XML スキーマを生成する場合にのみ使用する。

このプロパティの有効な値は、soap および literal。デフォルト値は soap

String

任意

この属性は javaTypes または javaComponents 属性との組み合わせでのみ使用する。encoding 属性を schemaFile 属性と一緒に使用するとエラーが返される。

javaComponents

Web サービスを実装する Java クラス名のカンマ区切りリスト。Java クラスで実装される Web サービスの場合は、この属性に Java クラスを指定する。ステートレス セッション EJB で実装される Web サービスの場合は、この属性に EJB のリモート インタフェースを指定する。Java クラス (コンポーネントの実装と非組み込みデータ型の実装における) がコンパイルされ、CLASSPATH に存在する必要がある。

次に例を示す。

javaComponents="my.class1,my.class2"

autotype Ant タスクは、リストの Java クラスを参照し、見つかったすべての非組み込みデータ型のコンポーネントを自動的に生成する。

String

schemaFilewsdljavaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。

javaTypes

非組み込みデータ型を表す Java クラス名のカンマ区切りリスト。Java クラスがコンパイルされ、CLASSPATH 内に存在する必要がある。

次に例を示す。

javaTypes="my.class1,my.class2"

注意 : [Lclassname; 構文を使用して Java データ型の配列を指定する。例については、「」を参照。

String

schemaFilewsdljavaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。

keepGenerated

autotype Ant タスクが、Web サービス オペレーションへのパラメータまたは戻り値として使用される非組み込みデータ型に対するシリアライゼーション クラスの Java ソース コードを保持する (したがって生成されたコンポーネントに入れる) 必要があるのか、それともコンパイルされたクラス ファイルだけを入れるのかを指定する。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

overwrite

Ant タスクで生成されたコンポーネントがすでに存在する場合、それを上書きするかどうかを指定する。

True を指定すると、常に新しいコンポーネントが生成され、既存のコンポーネントがすべて上書きされる。

False を指定すると、既存のコンポーネントのタイムスタンプに基づき、変更のあったコンポーネントだけが上書きされる。

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

Boolean

任意

packageBase

Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの基本パッケージ名。つまり、autotype Ant タスクは、指定されたパッケージの基本名に付加された個々の Java クラスに固有の名前を生成するが、生成された個々の Java クラスは同じパッケージ名の一部となる。

この属性を指定しない場合は、autotype Ant タスクが基本パッケージ名を生成する。

注意 : BEA では、この属性よりも、packageName 属性を使用して完全パッケージ名を指定することを推奨。packageBase 属性は、JAX-RPC に準拠している。

String

任意

この属性を指定した場合、packageName を同時に指定することはできない。

packageName

Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの完全パッケージ名。

この属性を指定しない場合は、autotype Ant タスクがパッケージ名を生成する。

注意 : この属性は必須でないが、指定することを推奨。

現時点では、この属性を指定してはならないのは、javaTypes 属性を使用して、クラス名が同じであるがパッケージ名が異なる一連の Java データ型を指定した場合のみ。 この場合、packageName 属性も指定すると、autotype Ant タスクは、最後のクラスのシリアライゼーション クラスのみを生成する。

String

任意

この属性を指定した場合、packageBase を同時に指定することはできない。

schemaFile

非組み込みデータ型の XML スキーマ表現が格納されているファイルの名前。

String

schemaFilewsdljavaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。

targetNamespace

生成された XML スキーマのネームスペース URI。

String

必須

typeMappingFile

必要なコンポーネントがすでに生成されている、非組み込みデータ型のデータ型マッピング情報と、非組み込みデータ型の XML スキーマ表現が格納されているファイル。情報の形式は、web-services.xml ファイルの <type-mapping> 要素と <types> 要素内のデータ型マッピング情報と同じ。

autotype Ant タスクは、このファイルにあるデータ型の非組み込みデータ型コンポーネントは生成しない。このタスクでは、このファイルの情報をその出力 types.xml ファイルの生成された情報に結合する。

String

任意

wsdl

非組み込みデータ型の XML スキーマ表現が格納されている WSDL の完全パス名または URI。

String

schemaFilewsdljavaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。

相当するコマンドライン ユーティリティ

autotype Ant タスクに相当するコマンドライン ユーティリティは weblogic.webservice.autotype です。ユーティリティのフラグの説明は、前の節で説明した Ant タスク属性の説明と同じです。

weblogic.webservice.autotype ユーティリティは次のフラグをサポートしています (フラグの説明は対応する属性を参照)。

 


clientgen

clientgen Ant タスクは、クライアント アプリケーションが WebLogic Web サービスと非 WebLogic Web サービスの両方の呼び出しに使用できる Web サービス固有のクライアント JAR ファイルを生成します。通常、clientgen Ant タスクは既存の WSDL ファイルからクライアント JAR ファイルを生成するために使用します。ただし、WebLogic Web サービスの実装が含まれた EAR ファイルで使用することもできます。

クライアント JAR ファイルの内容は次のとおりです。

clientgen Ant タスクを使用すると、クライアント JAR ファイルを既存の Web サービス (WebLogic Server 上で実行されている必要はない) の WSDL ファイルから、または WebLogic Web サービス実装を含んでいる EAR ファイルから生成できます。

WebLogic Server 配布キットには、WebLogic Web サービス実行時コンポーネントのサポートに必要なクライアント サイド クラスを含んでいるクライアント実行時 JAR ファイルが含まれています。 詳細については「clientgen Ant タスクを実行してクライアント JAR ファイルを生成する」を参照してください。

警告 : clientgen Ant タスクは要求/応答または通知 WSDL オペレーションをサポートしていません。つまり、これらの種類のオペレーションを含む WSDL ファイルからクライアント JAR ファイルを作成しようとすると、Ant タスクはオペレーションを無視します。

警告 : autotypeservicegen、および clientgen Ant タスクによって生成されたシリアライゼーション クラスと Java および XML 表現はラウンドトリップできません。 詳細については、「生成されたデータ型コンポーネントの非ラウンドトリップ」を参照してください。

注意 : clientgen Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask です。

<clientgen wsdl="http://example.com/myapp/myservice.wsdl"
packageName="myapp.myservice.client"
clientJar="myapps/myService_client.jar"
/>

属性

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

表 B-3 clientgen Ant タスクの属性

属性

説明

データ型

必須/任意

autotype

clientgen タスクが、Web サービス オペレーションへのパラメータまたは戻り値として使用される非組み込みデータ型に対するシリアライゼーション クラスを生成してクライアント JAR ファイルに入れるかどうかを指定する。

有効な値は True および False。 デフォルト値は True

Boolean

任意

clientJar

生成されたクライアント インタフェース クラス、スタブ クラス、省略可能なシリアライゼーション クラスなどを clientgen タスクが入れる JAR ファイルまたは展開ディレクトリの名前。

JAR ファイルを作成または更新するには、JAR ファイルの指定時に .jar サフィックスを使用する (myclientjar.jar など)。属性値に .jar サフィックスがない場合、clientgen タスクはディレクトリ名が参照されていると想定する。

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

String

必須

ear

クライアント JAR ファイルを生成する必要のある WebLogic Web サービス実装が格納されている EAR ファイルまたは展開ディレクトリの名前。

注意 : clientgensaveWSDL 属性が True (デフォルト値) に設定されている場合、clientgen Ant タスクは EAR ファイルの情報から WSDL ファイルを生成し、それを生成された JAR ファイルに格納する。clientgen は Web サービスをホストする WebLogic Server インスタンスのホスト名またはポート番号を認識しないため、clientgen は生成された WSDL の次のエンドポイント アドレスを使用する。

http://localhost:7001/contextURI/serviceURI

contextURIserviceURI は、「WebLogic Web サービスのホーム ページおよび WSDL の URL」で説明した値と同じ。このエンドポイント アドレスが正しくなく、クライアント アプリケーションがクライアント JAR ファイルに格納されている WSDL ファイルを使用する場合、正確なエンドポイント アドレスを指定して手動で WSDL ファイルを更新する必要がある。

String

wsdl または ear の指定が必須。

generateAsyncMethods

clientgen Ant タスクで、標準メソッドに加えて、Web サービスの各オペレーションを非同期で呼び出す 2 つの特殊なメソッドを生成するよう指定する。この特殊なメソッドは、次のような形式になっている。


FutureResult startMethod (params,
AsyncInfo asyncInfo);
result endMethod (FutureResult
futureResult);

各要素の説明は次のとおり。

  • Method は、Web サービス オペレーションの呼び出しに使用される標準メソッドの名前を指す。

  • params は、オペレーション用の一連のパラメータを指す。

  • result は、オペレーションの結果を指す。

  • FutureResult は、返されるオペレーション結果のプレースホルダとして使用する WebLogic オブジェクトを指す。

  • AsyncInfo は、コンテキスト情報を渡すために使用される WebLogic オブジェクトを指す。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

generatePublicFields

clientgen Ant タスクで、Web サービスが使用するすべての非組み込みデータ型の Java 表現を生成するときに、ゲッター メソッドとセッター メソッドではなく JavaBean 属性のパブリック フィールドを使用するかどうかを指定する。

有効な値は True および False。デフォルト値は False

Boolean

任意

j2me

clientgen Ant タスクが J2ME/CDC 準拠のクライアント JAR ファイルを作成するかどうかを指定する。

注意 : 生成されたクライアント コードは JAX-RPC に準拠していない。

有効な値は True および False。デフォルト値は False

Boolean

任意

keepGenerated

clientgen Ant タスクが、Web サービス オペレーションへのパラメータまたは戻り値として使用される非組み込みデータ型に対するシリアライゼーション クラスの Java ソース コードを保持する (したがって生成された JAR ファイルに入れる) 必要があるのか、それともコンパイルされたクラス ファイルだけを入れるのかを指定する。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

overwrite

Ant タスクで生成されたコンポーネントがすでに存在する場合、それを上書きするかどうかを指定する。

True を指定すると、常に新しいコンポーネントが生成され、既存のコンポーネントがすべて上書きされる。

False を指定すると、既存のコンポーネントのタイムスタンプに基づき、変更のあったコンポーネントだけが上書きされる。

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

Boolean

任意

packageName

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

String

必須

saveWSDL

True に設定されている場合、生成されたクライアント JAR ファイルに Web サービスの WSDL が保存される。この場合、クライアント アプリケーションは Web サービスへのスタブを作成するたびに WSDL をダウンロードする必要がなく、ネットワーク使用量が削減されるためにパフォーマンスが一般に向上する。

有効な値は True および False。デフォルト値は True

Boolean

任意

serviceName

対応するクライアント JAR ファイルの生成が必要な Web サービス名。

wsdl 属性を指定すると、Web サービス名は WSDL ファイル内の <service> 要素に対応する。ear 属性を指定すると、Web サービス名は web-services.xml デプロイメント記述子ファイル内の <web-service> 要素に対応する。

serviceName 属性が未指定の場合、clientgen タスクは WSDL または web-services.xml ファイル内で最初に見つかったサービス名のクライアント クラスを生成する。

String

任意

typeMappingFile

データ型マッピング情報を含むファイルで、JAX-RPC スタブの生成時に clientgen タスクにより使用される。情報の形式は、web-services.xml ファイルの <type-mapping> 要素内のデータ型マッピング情報と同じ。

ear 属性を指定すると、このファイル内の情報により、web-services.xml ファイル内のデータ型マッピング情報がオーバーライドされる。

String

任意

typePackageBase

Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの基本パッケージ名を指定する。つまり、clientgen Ant タスクは、指定されたパッケージの基本名に付加された個々の Java クラスに固有の名前を生成するが、生成された個々の Java クラスは同じパッケージ名の一部となる。

この属性を指定した場合、typePackageName を同時に指定することはできない。

この属性が指定されていず、WSDL ファイルの XML スキーマで対象のネームスペースが定義されている場合、clientgen Ant タスクは対象のネームスペースに基づいてパッケージ名を自動的に生成する。つまり、XML スキーマに対象のネームスペースが定義されていない場合は、clientgen Ant タスクの typePackageName 属性 (推奨) または typePackageBase 属性のいずれかを必ず指定する。

注意 : この属性を使用するよりも、typePackageName 属性で完全パッケージ名を指定する方が適切。typePackageBase 属性は、JAX-RPC に準拠している。

String

wsdl 属性を指定した場合で、WSDL ファイルの XML スキーマで対象ネームスペースが定義されていない場合のみ必須。

typePackageName

Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの完全パッケージ名を指定する。

この属性を指定した場合、typePackageBase を同時に指定することはできない。

この属性が指定されていず、WSDL ファイルの XML スキーマで対象のネームスペースが定義されている場合、clientgen Ant タスクは対象のネームスペースに基づいてパッケージ名を自動的に生成する。 つまり、XML スキーマに対象のネームスペースが定義されていない場合は、clientgen Ant タスクの typePackageName 属性 (推奨) または typePackageBase 属性のいずれかを必ず指定する。

注意 : この属性は必須でないが、指定することを推奨。

String

wsdl 属性を指定した場合で、WSDL ファイルの XML スキーマで対象ネームスペースが定義されていない場合のみ必須。

useLowerCaseMethodNames

True に設定されている場合、生成されたスタブのメソッド名の 1 文字目を小文字にするよう指定する。False に設定した場合、メソッド名はすべて WSDL ファイルのオペレーション名と同じになる。

有効な値は True および False。デフォルト値は True

Boolean

任意

usePortNameAsMethodName

clientgen Ant タスクが、WSDL ファイルからクライアントを生成する際にオペレーションの名前を取得する場所を指定する。

この値を True に設定した場合、オペレーションは、WSDL ファイルの <port> 要素の name 属性で指定された名前を取る (<port><service> 要素の子要素)。usePortNameAsMethodName を False に設定した場合、オペレーションは、WSDL ファイルの <portType> 要素の name 属性で指定された名前を取る (<portType><definitions> 要素の子要素)。

有効な値は True および False。デフォルト値は False

Boolean

任意

useServerTypes

clientgen タスクが、Web サービスで使用されるいずれかの非組み込み Java データ型の実装を取得する場所を指定する。タスクは Java コードを生成するか、Web サービスの完全な実装を含む EAR ファイルからそれを取得する。

有効な値は True (EAR ファイル内の Java コードを使用) および False。デフォルト値は False

clientgen でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、「servicegen および autotype Ant タスクでサポートされる非組み込みデータ型」を参照。

Boolean

任意

ear 属性との組み合わせでのみ使用。

warName

Web サービスを含んでいる WAR ファイルの名前。

デフォルト値は web-services.war

String

任意

この属性は、ear 属性との組み合わせでのみ指定できる。

wsdl

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

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

String

wsdl または ear の指定が必須。

相当するコマンドライン ユーティリティ

clientgen Ant タスクに相当するコマンドライン ユーティリティは weblogic.webservice.clientgen です。ユーティリティのフラグの説明は、前の節で説明した Ant タスク属性の説明と同じです。

weblogic.webservice.clientgen ユーティリティは次のフラグをサポートしています (フラグの説明は該当の属性を参照)。

 


servicegen

servicegen Ant タスクは、EJB JAR ファイルまたは Java クラスのリストを入力として受け取り、必要な全 Web サービス コンポーネントを作成してデプロイ可能な EAR ファイルにパッケージ化します。

具体的には、servicegen Ant タスクは、次のタスクを実行します。

また servicegen により、Web サービスで使用する信頼性のある SOAP メッセージング、ハンドラ チェーン、データ セキュリティ (デジタル署名と暗号化) のデフォルトのコンフィグレーションを設定することもできます。

Web サービスの開発時には、servicegendestEar 属性に .ear サフィックスを持たない値を指定して、EAR ファイルではなく展開ディレクトリを作成することをお勧めします。その展開ディレクトリは、後で、Web サービスがデプロイできる状態になったときに EAR ファイルにパッケージ化できます。

警告 : autotypeservicegen、および clientgen Ant タスクによって生成されたシリアライゼーション クラスと Java および XML 表現はラウンドトリップできません。詳細については、「生成されたデータ型コンポーネントの非ラウンドトリップ」を参照してください。

注意 : servicegen Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask です。

      <servicegen
destEar="ears/myWebService.ear"
warName="myWAR.war"
contextURI="web_services" >
<service
ejbJar="jars/myEJB.jar"
targetNamespace="http://www.bea.com/examples/Trader"
serviceName="TraderService"
serviceURI="/TraderService"
generateTypes="True"
expandMethods="True" >
</service>
</servicegen>

属性と子要素

1 つの EAR ファイルに定義する各 Web サービスに対して、servicegen Ant タスクには 4 つの属性と 1 つの子要素 (<service>) があります。1 つ以上の <service> 要素を指定する必要があります。

<service> 要素には、<client><reliability><handlerChain><security> という 4 つの省略可能な要素があります。

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

図 B-1 servicegen Ant タスクの要素階層

servicegen Ant タスクの要素階層


 

servicegen

servicegen Ant タスクは、Web サービスの全コンポーネントを自動的に生成およびアセンブルしてデプロイ可能な EAR ファイルにパッケージ化する主要なタスクです。

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

表 B-4 servicegen Ant タスクの属性

属性

説明

データ型

必須/任意

contextURI

Web サービスのコンテキスト ルート。この値は、Web サービスを呼び出す URL 内で使用する。

contextURI 属性のデフォルト値は warName 属性の値になる。

String

任意

destEar

Web サービスとその全コンポーネントを格納する EAR ファイルまたは展開ディレクトリのパス名。

EAR ファイルを作成または更新するには、EAR ファイルの指定時に .ear サフィックスを使用する (ears/mywebservice.ear など)。属性値に .ear サフィックスがない場合、servicegen タスクは展開ディレクトリを作成する。

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

String

必須

keepGenerated

servicegen Ant タスクが、Web サービス オペレーションへのパラメータまたは戻り値として使用される非組み込みデータ型に対するシリアライゼーション クラスの Java ソース コードを保持する (したがって生成された Web サービス EAR ファイルに入れる) 必要があるのか、それともコンパイルされたクラス ファイルだけを入れるのかを指定する。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

mergeWithExistingWS

servicegen Ant タスクで、生成されたコンポーネントを destEar 属性で指定されている EAR ファイルにある既存の Web サービスにマージする必要があるかどうかを指定する。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

overwrite

Ant タスクで生成されたコンポーネントがすでに存在する場合、それを上書きするかどうかを指定する。

True を指定すると、常に新しいコンポーネントが生成され、既存のコンポーネントがすべて上書きされる。

False を指定すると、既存のコンポーネントのタイムスタンプに基づき、変更のあったコンポーネントだけが上書きされる。

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

Boolean

任意

warName

Web サービスの Web アプリケーションが書き込まれる WAR ファイルまたは展開ディレクトリの名前。WAR ファイルまたはディレクトリは EAR ファイルの最上位に作成される。

デフォルト値は web-services.war という WAR ファイル。

WAR ファイルを指定するには、.war サフィックスを使用する (mywebserviceWAR.war など)。 属性値に .war サフィックスがない場合、servicegen タスクは展開ディレクトリを作成する。

String

任意

service

<service> 要素は、ステートレス セッション EJB または Java クラスで実装される単一 Web サービスを記述します。

次の表では、servicegen Ant タスクの <service> 要素の属性について説明します。単一 EAR ファイルにパッケージ化する各 Web サービスに、1 つの <service> 要素を含めてください。

表 B-5 servicegen Ant タスクの <service> 要素の属性

属性

説明

データ型

必須/任意

ejbJar

Web サービス オペレーションのバックエンド コンポーネントを実装する EJB を含む JAR ファイルまたは展開ディレクトリ。servicegen Ant タスクはこの EJB を参照して全コンポーネントを自動生成する。

String

ejbJar 属性、javaClassComponents 属性、または JMS* 属性の指定が必須。

excludeEJBs

非組み込みデータ型コンポーネントを生成すべきでない EJB 名のカンマ区切りリスト。

この属性を指定すると、servicegen タスクはこのリスト上の EJB 以外の全 EJB を処理する。

EJB 名は、ejbJar 属性で指定される EJB JAR ファイル内の ejb-jar.xml デプロイメント記述子内の <ejb-name> 要素に対応する。

String

任意

ejbJar 属性との組み合わせでのみ使用される。

expandMethods

web-services.xml ファイルの生成時に、servicegen タスクが EJB または Java クラスの各メソッドに別々の <operation> 要素を作成するか、または method="*" 属性を含む 1 つの <operation> 要素のみを指定することで全メソッドを暗黙的に参照するかを指定する。

有効な値は True および False。 デフォルト値は False

Boolean

任意

generateTypes

servicegen タスクが、パラメータまたは戻り値として使用される非組み込みデータ型に対してシリアライゼーション クラスと Java 表現を生成するかを指定する。

有効な値は True および False。 デフォルト値は True

servicegen でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、「servicegen および autotype Ant タスクでサポートされる非組み込みデータ型」を参照。

Boolean

任意

ignoreAuthHeader

Web サービスが SOAP リクエスト内の Authorization HTTP ヘッダを無視することを指定する。

注意 : この属性の使用は慎重に行うこと。この属性の値を True に設定すると、WebLogic Server は、たとえアクセス制御のセキュリティ制約が Web サービスを構成する EJB、Web アプリケーション、またはエンタープライズ アプリケーションに対して定義されていても、Web サービスを呼び出そうとしているクライアント アプリケーションの認証を行わない。 つまり、認証資格を提供しないクライアント アプリケーションでも、セキュリティ制約が定義されていれば、Web サービスを呼び出すことが可能となる。

有効な値は True および False。 デフォルト値は False

Boolean

任意

includeEJBs

非組み込みデータ型コンポーネントの生成が必要な EJB 名のカンマ区切りリスト。

この属性を指定すると、servicegen タスクはこのリスト上の EJB のみを処理する。

EJB 名は、ejbJar 属性で指定される EJB JAR ファイル内の ejb-jar.xml デプロイメント記述子内の <ejb-name> 要素に対応する。

Boolean

任意

ejbJar 属性との組み合わせでのみ使用される。

javaClassComponents

Web サービス オペレーションを実装する Java クラス名のカンマ区切りリスト。Java クラスがコンパイルされ、CLASSPATH 内に存在する必要がある。

次に例を示す。

javaClassComponents="my.FirstClass,my.SecondClass"

注意 : クラス名を指定するときに .class 拡張子を含めないこと。

servicegen Ant タスクはこの Java クラスを参照して必要な全コンポーネントを自動生成する。

String

ejbJar 属性、javaClassComponents 属性、または JMS* 属性の指定が必須。

JMSAction

JMS で実装されるこの Web サービスを呼び出すクライアント アプリケーションが JMS 送り先にメッセージを送信するのか、それとも JMS 送り先からメッセージを受信するのかを指定する。

有効な値は send または receive

クライアントが JMS 送り先にメッセージを送信する場合は send、クライアントが JMS 送り先からメッセージを受信する場合は receive を指定する。

String

必須 (JMS で実装される Web サービスを作成する場合)

JMSConnectionFactory

JMS の送り先への接続を作成するために使用される ConnectionFactory の JNDI 名。

String

必須 (JMS で実装される Web サービスを作成する場合)

JMSDestination

JMS キューの JNDI 名。

String

必須 (JMS で実装される Web サービスを作成する場合)

JMSDestinationType

JMS の送り先のタイプ。 現在サポートされているタイプはキューのみ。

有効な値は queue

String

必須 (JMS で実装される Web サービスを作成する場合)

JMSMessageType

送信または受信オペレーションの 1 つのパラメータのデータ型。

デフォルト値は java.lang.String

この属性を使用して非組み込みデータ型を指定し、generateTypes 属性を True に設定する場合は、この非組み込みデータ型の Java 表現が必ず CLASSPATH で設定されているようにする。

String

任意

JMSOperationName

生成された WSDL ファイルのオペレーションの名前。

デフォルト値は send または receive のいずれか (JMSAction 属性の値によって異なる)。

String

任意

protocol

この Web サービスのデプロイに使用されるプロトコル。

有効な値は http および https。 デフォルト値は http

String

任意

serviceName

WSDL でパブリッシュされる Web サービスの名前。

注意 : servicegen を呼び出す build.xml ファイルで複数の <service> 要素を指定し、その各要素の serviceName 属性を同じ値に設定すると、servicegen は複数の <service> 要素を単一の Web サービスにマージしようとする。

String

必須

serviceURI

クライアント アプリケーションが Web サービスの呼び出しに使用する URL の Web サービス URI 部分。

注意 : /TraderService のように、先頭に「/」を必ず指定すること。

Web サービスを呼び出す完全 URL は次のとおりである。

protocol://host:port/contextURI/serviceURI

各要素の説明は次のとおり。

  • protocol は、<service> 要素の protocol 属性を指す。

  • host は、WebLogic Server が動作しているコンピュータの名前を指す。

  • port は、WebLogic Server がリスンしているポートを指す。

  • contextURI は、メイン servicegen Ant タスクの contextURI 属性を指す。

  • serviceURI は、この属性を指す。

String

必須

style

servicegen Ant タスクで RPC 指向とドキュメント指向のどちらの Web サービス オペレーションを生成するのかを指定する。

RPC 指向の WebLogic Web サービス オペレーションでは、SOAP エンコーディングを使用する。ドキュメント指向の WebLogic Web サービス オペレーションでは、リテラル エンコーディングを使用する。

documentdocumentwrapped を使用すると、ドキュメント指向の Web サービス オペレーションを生成できる。

document を指定した場合、Web サービスはパラメータを 1 つしか取らない。このため、このオペレーションを実装するメソッドもパラメータを 1 つしか取らない。この場合、servicegen が複数のパラメータを持つメソッドに遭遇した場合、servicegen はそのメソッドを無視し、対応する Web サービス オペレーションが生成されない。

documentwrapped を指定した場合、Web サービス オペレーションはパラメータをいくつでも取ることができる。ただし、これらのパラメータの値は、SOAP メッセージの中に 1 つの複合データ型としてラップされる。Web サービスを実装するステートレス セッション EJB または Java クラスの複数のメソッドが同じパラメータ数とデータ型を取り、オペレーションをドキュメント指向にしたい場合、この属性値として document ではなく documentwrapped を指定する必要がある。

この属性の有効な値は rpcdocumentwrapped、および document。 デフォルト値は rpc

注意 : style 属性は Web サービス全体に適用されるので、1 つの WebLogic Web サービスのすべてのオペレーションが RPC 指向またはドキュメント指向のいずれかである必要がある。同じ Web サービスで 2 つのスタイルを混在させることはできない。

String

任意

typeMappingFile

XML データ型マッピングに関する追加情報と、非組み込みデータ型の XML スキーマ表現を含むファイル。情報の形式は、web-services.xml 内のデータ型マッピング情報と同じ。

この属性は、オペレーションを実装する EJB または Java クラスが使用する必須のデータ型の XML 記述だけでなく、追加の XML データ型情報も web-services.xml ファイルの <type-mapping> 要素に含める場合に使用する。servicegen タスクは、指定ファイル内の追加情報を、生成された web-services.xml ファイルに追加する。

String

任意

targetNamespace

Web サービスのネームスペース URI。

String

必須

useSOAP12

メッセージ フォーマット プロトコルとして SOAP 1.2 を使用するかどうかを指定する。デフォルトでは、WebLogic Web サービスは SOAP 1.1 を使用する。

useSOAP12="True" を指定した場合、デプロイされた WebLogic Web サービスの生成された WSDL には、メッセージ フォーマット プロトコルとして SOAP 1.1 用のバインディングを指定する標準ポートと、SOAP 1.2 を使用する第 2 ポートの 2 つのポートが含まれる。メッセージ フォーマット プロトコルに SOAP 1.2 を使用したい場合、クライアント アプリケーションは Web サービスの呼び出し時に第 2 ポートを使用できる。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

client

省略可能な <client> 要素は、クライアント アプリケーションが Web サービスの呼び出しに使用するクライアント JAR ファイルの作成方法を指定します。servicegen Ant タスクによりクライアント JAR ファイルを作成する場合にのみこの要素を指定します。

注意 : Web サービスのアセンブル時にクライアント JAR ファイルを作成する必要はありません。後で clientgen Ant タスクを使用して JAR ファイルを生成することができます。

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

表 B-6 servicegen Ant タスクの <client> 要素の属性

属性

説明

データ型

必須/任意

clientJarName

生成されたクライアント JAR ファイルの名前。

servicegen タスクは、Web サービスをパッケージ化するときに、クライアント JAR ファイルを EAR ファイルの Web サービス WAR ファイルの最上位ディレクトリに入れる。

デフォルト名は serviceName_client.jar で、serviceName は Web サービスの名前 (serviceName 属性) を指す。

注意 : クライアント JAR ファイルへのリンクを Web サービス ホーム ページに自動的に表示する場合は、デフォルト名を変更しないこと。

String

任意

packageName

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

String

必須

saveWSDL

True に設定されている場合、生成されたクライアント JAR ファイルに Web サービスの WSDL ファイルが保存される。 この場合、クライアント アプリケーションは Web サービスへのスタブを作成するたびに WSDL ファイルをダウンロードする必要がなく、ネットワーク使用量が削減されるためにパフォーマンスが一般に向上する。

有効な値は True および False。 デフォルト値は True

Boolean

任意

useServerTypes

servicegen タスクが、Web サービスで使用されるいずれかの非組み込み Java データ型の実装を取得する場所を指定する。タスクは Java コードを生成するか、Web サービスの完全な実装を含む EAR ファイルからそれを取得する。

有効な値は True (EAR ファイル内の Java コードを使用) および False。デフォルト値は False

servicegen でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、「servicegen および autotype Ant タスクでサポートされる非組み込みデータ型」を参照。

Boolean

任意

handlerChain

<service> 要素の省略可能な <handlerChain> 子要素は、Web サービスにハンドラ チェーン コンポーネントを追加し、ハンドラ チェーンを Web サービスの各オペレーションと関連付けるよう指定します。1 つのハンドラ チェーンは 1 つまたは複数のハンドラで構成されます。ハンドラ チェーンの詳細については、「SOAP メッセージをインターセプトする SOAP メッセージ ハンドラの作成」を参照してください。

注意 : この要素を servicegen で設定すると、ハンドラ チェーンが Web サービスのすべてのオペレーションと関連付けられます。このハンドラ チェーンを一部のオペレーションのみと関連付けたい場合は、生成された web-services.xml ファイルを編集して、対応する <operation> 要素の handler-chain 属性を削除してください。これらの要素と属性の詳細については、「WebLogic Web サービス デプロイメント記述子の要素」を参照してください。

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

表 B-7 servicegen Ant タスクの <handlerChain> 要素の属性

属性

説明

データ型

必須/任意

handlers

ハンドラ チェーン内のハンドラを実装する Java クラス名 (完全修飾名) のカンマ区切りリスト。クラス名を少なくとも 1 つは指定する必要がある。

注意 : ハンドラを実装する Java クラスに初期化パラメータが必要な場合は、生成された web-services.xml ファイルを編集して、<handler> 要素に <init-params> 子要素を追加する必要がある。これらの要素の詳細については、「WebLogic Web サービス デプロイメント記述子の要素」を参照。

String

必須

name

ハンドラ チェーンの名前。

デフォルト値は serviceNameHandlerChain で、serviceName<service> 親要素の serviceName 属性を指す。

String

任意

reliability

<service> 要素の省略可能な <reliability> 子要素は、信頼性のある SOAP メッセージングによって Web サービスのすべてのオペレーションを非同期に呼び出せるよう指定します。信頼性のある SOAP メッセージングの詳細については、「信頼性のある SOAP メッセージングの使い方」を参照してください。

注意 : この要素を servicegen で設定すると、信頼性のある SOAP メッセージングが Web サービスのすべてのオペレーションに対して有効になります。信頼性のある SOAP メッセージングを一部のオペレーションでのみ利用したい場合は、生成された web-services.xml ファイルを編集して、対応する <operation> 要素の <reliable-delivery> 子要素を削除してください。 これらの要素の詳細については、「WebLogic Web サービス デプロイメント記述子の要素」を参照。

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

表 B-8 servicegen Ant タスクの <reliability> 要素の属性

属性

説明

データ型

必須/任意

duplicateElimination

WebLogic Web サービス オペレーションが同じクライアント アプリケーションからの重複呼び出しを無視するかどうかを指定する。

この属性を True に設定すると、Web サービスは重複呼び出しを排除できるようにクライアント アプリケーションからのメッセージ ID を保持する。False に設定した場合、Web サービスは重複呼び出しを管理しない。つまり、クライアントが呼び出しを再試行した場合、どちらの呼び出しも値を返すことができる。

この属性の有効な値は、True および False。デフォルト値は True

Boolean

任意

persistDuration

Web サービスを呼び出した送信元から受信した信頼性のある SOAP メッセージの履歴を、Web サービスがそのストレージに保持するデフォルトの最小秒数。

Web サービスは、WebLogic Server のクラッシュからの回復後、保持しているメッセージのうち期限の切れているものはディスパッチしない。

この属性のデフォルト値は 60,000 秒。

Integer

任意

security

<service> 要素の省略可能な <security> 子要素は、デジタル署名や暗号化などのデフォルト データ セキュリティを Web サービスに追加します。データ セキュリティの詳細については、「セキュリティのコンフィグレーション」を参照してください。

注意 : servicegen Ant タスクを使用してデータ セキュリティをコンフィグレーションする場合は、SOAP メッセージ本文全体のみを暗号化またはデジタル署名できます。デジタル署名または暗号化する対象として SOAP メッセージの特定の要素を指定したい場合は、「メッセージレベルのセキュリティのコンフィグレーション : 主な手順」を参照してください。この節では、Web サービスを呼び出す前に Administration Console で実行しておく必要のある一般的なセキュリティ コンフィグレーション作業についても説明しています。

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

表 B-9 servicegen Ant タスクの <security> 要素の属性

属性

説明

データ型

必須/任意

enablePasswordAuth

ユーザ認証を有効にするか無効にするかを指定する。有効にした場合、web-services.xml デプロイメント記述子ファイルの <security> 要素にユーザ名トークンが追加される。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

encryptKeyName

WebLogic Server のキーストアに格納されている、SOAP メッセージを暗号化するのに使用されるキーと証明書のペアの名前。

この属性を指定しない場合、SOAP メッセージのどの部分も暗号化されない。

String

SOAP メッセージを暗号化する場合のみ

encryptKeyPass

WebLogic Server のキーストアに格納されている、SOAP メッセージを暗号化するのに使用されるキーと証明書のペアのパスワード。

この属性を指定しない場合、SOAP メッセージのどの部分も暗号化されない。

String

SOAP メッセージを暗号化する場合のみ

password

SOAP 応答メッセージのユーザ名トークンで使用されるパスワードを指定する。

この属性を指定しない場合、SOAP 応答メッセージにユーザ名トークン仕様が含まれない。

String

SOAP メッセージでユーザ名トークンが必要な場合のみ

signKeyName

WebLogic Server のキーストアに格納されている、SOAP メッセージにデジタル署名するのに使用されるキーと証明書のペアの名前。

この属性を指定しない場合、SOAP メッセージのどの部分もデジタル署名されない。

String

SOAP メッセージにデジタル署名する場合のみ

signKeyPass

WebLogic Server のキーストアに格納されている、SOAP メッセージにデジタル署名するのに使用されるキーと証明書のペアのパスワード。

この属性を指定しない場合、SOAP メッセージのどの部分もデジタル署名されない。

String

SOAP メッセージにデジタル署名する場合のみ

username

SOAP 応答メッセージのユーザ名トークンで使用されるユーザ名を指定する。

この属性を指定しない場合、SOAP 応答メッセージにユーザ名トークン仕様が含まれない。

String

SOAP メッセージでユーザ名トークンが必要な場合のみ

 


source2wsdd

source2wsdd Ant タスクは、ステートレス セッション EJB または Java クラスを使用して実装される WebLogic Web サービスの Java ソース ファイルから web-services.xml デプロイメント記述子ファイルを生成します。生成される Web サービスを記述する WSDL を指定することもできます。

source2wsdd Ant タスクは、Web サービスの名前を、Web サービスを実装する Java クラスまたは EJB のクラス名に設定します。 この名前は、WSDL で公開される Web サービスのパブリック名にもなります。

source2wsdd Ant タスクは、EJB または Java クラスのメソッドのパラメータまたは戻り値として使用される非組み込みデータ型のデータ型マッピング情報を生成しません。EJB または Java クラスで非組み込みデータ型が使用される場合は、まず autotype Ant タスクを実行して必要なコンポーネントを生成し、その後に source2wsdd Ant タスクの typesInfo 属性を、autotype Ant タスクで生成された types.xml ファイルに設定します。

EJB または Java クラスが他の Java クラス ファイルを参照する場合は、必ず、source2wsdd Ant タスクの sourcePath 属性をそれらのファイルが格納されているディレクトリに設定してください。

注意 : source2wsdd Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.autotype.JavaSource2DD です。

次の例では、Java クラスで実装される Web サービスの web-services.xml ファイルを ddfiles ディレクトリに生成する方法を示します。非組み込みデータ型についての情報は、autotype/types.xml ファイルに格納されています。サービスの呼び出しに使用される URI の Web サービス部分は /MyService です。

<source2wsdd
javaSource="source/MyService.java"
typesInfo="autotype/types.xml"
ddFile="ddfiles/web-services.xml"
serviceURI="/MyService"
/>

次の例では、web-services.xml ファイルと、ステートレス セッション EJB で実装される Web サービスを記述する WSDL ファイル (wsdFiles/Temperature.wsdl) の両方を生成する方法を示します。 ejbLink 属性が指定されているため、javaSource 属性は EJB ソース ファイルを指す必要があります。source2wsdd Ant タスクは、ejblink 属性の値を web-services.xml ファイルの <stateless-ejb> 要素の <ejb-link> 子要素の値として使用します。

<source2wsdd 
javaSource="source/TemperatureService.java"
ejbLink="TemperatureService.jar#TemperatureServiceEJB"
ddFile="ddfiles/web-services.xml"
typesInfo="autotype/types.xml"
serviceURI="/TemperatureService"
wsdlFile="wsdlFiles/Temperature.wsdl"
/>

属性

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

表 B-10 source2wsdd Ant タスクの属性

属性

説明

データ型

必須/任意

ddFile

生成されたデプロイメント記述子情報が格納される Web サービスのデプロイメント記述子ファイル (web-services.xml) の完全パス名。

String

必須

ejblink

ステートレス セッション EJB で実装される Web サービス用に生成するデプロイメント記述ファイルにある <stateless-ejb> 要素の <ejb-link> 子要素の値を指定する。 この属性は、EJB から web-services.xml ファイルを生成する場合のみ指定する。

注意 : source2wsdd Ant タスクは、参照すべき EJB を特定するためではなく、生成する web-services.xml ファイルの <ejb-link> 要素で使用する値を特定するために、この値を利用する。EJB ソース ファイルの指定には javaSource 属性を使用する。

この属性の書式は次のとおりである。

jar-name#ejb-name

jar-name は、ステートレス セッション EJB を含んでいる JAR ファイル (Web サービス EAR ファイル内に含まれている) の名前を指す。名前には、最上位の EAR ファイルへの相対パス名が含まれている必要がある。

ejb-name は、EJB JAR ファイル内の ejb-jar.xml デプロイメント記述子内の <ejb-name> 要素に対応するステートレス セッション EJB の名前を指す。

例 : myapp.jar#StockQuoteBean

String

任意

この属性を指定した場合、必須の javaSource 属性には必ず EJB ソース ファイルを設定する必要がある。

handlerInfo

Web サービスに定義された SOAP メッセージ ハンドラとハンドラ チェーンに関する情報が格納されている XML ファイルの完全パス名。

このファイルは手動で作成する必要がある。ファイルのルート要素は <handler-chains>。 このファイルの詳細情報と内容の作成方法については、「SOAP メッセージ ハンドラ情報による web-services.xml ファイルの更新」および「WebLogic Web サービス デプロイメント記述子の要素」を参照。

この属性を指定しないと、生成された web-services.xml ファイルに SOAP メッセージ ハンドラとハンドラ チェーンの情報が格納されない。

String

任意

ignoreAuthHeader

Web サービスが SOAP リクエスト内の Authorization HTTP ヘッダを無視することを指定する。

注意 : この属性の使用は慎重に行うこと。この属性の値を True に設定すると、WebLogic Server は、たとえアクセス制御のセキュリティ制約が Web サービスを構成する EJB、Web アプリケーション、またはエンタープライズ アプリケーションに対して定義されていても、Web サービスを呼び出そうとしているクライアント アプリケーションの認証を行わない。 つまり、認証資格を提供しないクライアント アプリケーションでも、セキュリティ制約が定義されていれば、Web サービスを呼び出すことが可能となる。

有効な値は True および False。デフォルト値は False

Boolean

任意

javaSource

Web サービスのコンポーネントを実装するステートレス セッション EJB または Java ソース ファイルの名前。

String

必須

mergeWithExistingWS

source2wsdd Ant タスクで、生成された web-services.xml デプロイメント記述子の情報を、ddFile 属性で指定された既存のファイルにマージするかどうかを指定する。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

overwrite

Ant タスクで生成されたコンポーネントがすでに存在する場合、それを上書きするかどうかを指定する。

True を指定すると、常に新しいコンポーネントが生成され、既存のコンポーネントがすべて上書きされる。

False を指定すると、既存のコンポーネントのタイムスタンプに基づき、変更のあったコンポーネントだけが上書きされる。

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

Boolean

任意

serviceURI

クライアント アプリケーションが Web サービスの呼び出しに使用する URL の Web サービス URI 部分。

注意 : /TraderService のように、先頭に「/」を必ず指定すること。

この属性の値は、生成された web-services.xml デプロイメント記述子の <web-service> 要素の uri 属性の値になる。

String

必須

sourcePath

javaSource 属性で指定された Java ソース ファイルによって参照される追加クラスが格納されているディレクトリの完全パス名。

String

任意

typesInfo

Web サービスのパラメータまたは戻り値として使用される非組み込みデータ型の XML スキーマ表現およびデータ型マッピング情報を格納するファイルの名前。

データ型マッピング情報の形式は、web-services.xml ファイルの <type-mapping> 要素内のそれと同じ。

通常は、すでに autotype Ant タスクを実行し、この情報が types.xml というファイルに生成されている。

String

必須

wsdlFile

web-services.xml デプロイメント記述子に加えて、Web サービスを記述する WSDL を生成するよう指定する。

この値には、生成される WSDL を格納する出力ファイルの名前を設定する。

String

任意

 


wsdl2Service

wsdl2Service Ant タスクは既存の WSDL ファイルを入力として、次のものを生成します。

生成される Java インタフェース ファイルには、Java クラスのみで実装される WebLogic Web サービスのテンプレートが格納されます。このテンプレートには、WSDL ファイルのオペレーションに対応する完全なメソッド シグネチャが含まれています。「Java クラスを記述して Web サービスを実装する」のガイドラインに従って、希望どおりにメソッドが機能するようにこのインタフェースを実装する Java クラスを記述します。実装クラスのスケルトンを生成するには、generateImpl="True" 属性を指定し、このクラスにビジネス ロジック Java コードを追加して、実装を完了します。

wsdl2Service Ant タスクは、(<service> 要素で指定された) WSDL ファイルの 1 つの Web サービスのみに対応する Java インタフェースを生成します。serviceName 属性を使用すると、特定のサービスを指定できます。この属性を指定しない場合、wsdl2Service Ant タスクでは WSDL ファイルの最初の <service> 要素の Java インタフェースが生成されます。

wsdl2Service Ant タスクは、WSDL ファイルのオペレーションのパラメータまたは戻り値として使用される非組み込みデータ型のデータ型マッピング情報を生成しません。WSDL で非組み込みデータ型が使用される場合は、まず autotype Ant タスクを実行してデータ型マッピング情報を生成し、その後に wsdl2Service Ant タスクの typeMappingFile 属性を autotype Ant タスクで生成された types.xml ファイルに設定します。

警告 : wsdl2Service Ant タスクを使用して Web サービスの web-services.xml ファイルを生成するときは、作成された Java インタフェースを実装する Java クラスに対して、次の命名規約が使用されます。

Warning: packageName.serviceNameImpl

packageName および serviceName は、wsdl2Service Ant タスクの同名の属性の値です。 Ant タスクは、web-services.xml ファイルの <java-class> 要素の class-name 属性に、この情報を書き込みます。

Java 実装クラスに別の名前を付ける場合は、その名前に合わせて、生成された web-services.xml ファイルを手動で更新する必要があります。

注意 : wsdl2Service Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.wsdl2service.WSDL2Service です。

<wsdl2service
wsdl="wsdls/myService.wsdl"
destDir="myService/implementation"
typeMappingFile="autotype/types.xml"
packageName="example.ws2j.service"
/>

属性

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

表 B-11 wsdl2Service Ant タスクの属性

属性

説明

データ型

必須/任意

ddFile

デプロイメント記述子情報が格納される、生成された Web サービスのデプロイメント記述子ファイル (web-services.xml) の完全パス名。

この属性を指定しない場合には、web-services.xml ファイルは destDir 属性で指定されたディレクトリに生成される。

String

任意

destDir

生成されたコンポーネント (web-services.xml ファイル、Web サービスの実装を表す Java インタフェース ファイル、および省略可能な実装クラス) が格納されるディレクトリの完全パス名。

String

必須

generateImpl

wsdl2Service Ant タスクが、空の実装 Java クラス ファイルを生成するべきであることを指定する。

Java クラスの名前は serviceNameImplserviceName は、wsdl2Service Ant タスクの同様な名前を持つ属性の値。生成された Java ファイルの名前は serviceNameImpl.java であり、このファイルは destDir 属性で指定されたディレクトリ内に生成される。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

keepGenerated

WSDL ファイルにある Web サービスを表すインタフェースおよびユーザ定義例外の Java ソース コードを wsdl2Service Ant タスクが維持するかどうか (したがって destDir 属性で指定されたディレクトリに格納するかどうか) を指定する。デフォルトでは、コンパイルされたクラス ファイルだけが格納される。

この属性の有効な値は、True および False。デフォルト値は False

Boolean

任意

overwrite

Ant タスクで生成されたコンポーネントがすでに存在する場合、それを上書きするかどうかを指定する。

True を指定すると、常に新しいコンポーネントが生成され、既存のコンポーネントがすべて上書きされる。

False を指定すると、既存のコンポーネントのタイムスタンプに基づき、変更のあったコンポーネントだけが上書きされる。

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

Boolean

任意

packageName

Web サービスの実装を表す、生成された Java インタフェース ファイルのパッケージ名。

String

必須

serviceName

部分的な WebLogic 実装が生成される WSDL ファイル内の Web サービスの名前。WSDL ファイル内の Web サービスの名前は、<service> 要素の name 属性の値。

この属性を指定しない場合、wsdl2Service Ant タスクは WSDL ファイルで見つかった最初の <service> 要素の部分的な実装を生成する。

注意 : wsdl2Service Ant タスクは、WSDL ファイルの 1 つのサービスのみで部分的な WebLogic Web サービス実装を生成する。WSDL ファイルに複数の Web サービスが含まれている場合は、この属性の値を変えながら、wsdl2Service を複数回実行する必要がある。

String

任意

typeMappingFile

WSDL ファイルの Web サービスのオペレーションによって参照されるすべての非組み込みデータ型のデータ型マッピング情報が格納されているファイル。 情報の形式は、web-services.xml ファイルの <type-mapping> 要素内のデータ型マッピング情報と同じ。

通常は、最初に autotype Ant タスク (wsdl 属性を指定) を同じ WSDL ファイルに対して実行し、すべての非組み込みデータ型コンポーネントを生成する。生成されるコンポーネントの 1 つは、非組み込みデータ型のマッピング情報と非組み込みデータ型の XML スキーマが格納される types.xml というファイル。typeMappingFile 属性はこのファイルに設定する。

String

必須 (WSDL ファイルの Web サービスのオペレーションが非組み込みデータ型を参照する場合のみ)

wsdl

部分的な WebLogic Web サービスの実装が生成される Web サービスを記述する WSDL の完全パス名または URL。

String

必須

 


wsdlgen

wsdlgen Ant タスクは、Web サービスを実装する EAR ファイルと WAR ファイルから WSDL ファイルを生成します。EAR ファイルには Web サービスを実装する EJB が格納され、WAR ファイルには web-services.xml デプロイメント記述子ファイルが格納されています。

wsdlgen Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.wsdlgen.WSDLGen です。

<wsdlgen ear="myapps/myapp.ear"
warName="myapps/myWAR.war"
serviceName="myService"
wsdlFile="wsdls/myService.WSDL"
/>

属性

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

表 B-12 wsdlgen Ant タスクの属性

属性

説明

データ型

必須/任意

ear

WSDL ファイルを生成する必要のある WebLogic Web サービス実装が格納されている EAR ファイルまたは展開ディレクトリの名前。

String

必須

defaultEndpoint

生成される WSDL ファイルに含められるエンドポイント Web サービスの URL。

デフォルト値は http://localhost:7001

String

任意

overwrite

Ant タスクで生成されたコンポーネントがすでに存在する場合、それを上書きするかどうかを指定する。

True を指定すると、常に新しいコンポーネントが生成され、既存のコンポーネントがすべて上書きされる。

False を指定すると、既存のコンポーネントのタイムスタンプに基づき、変更のあったコンポーネントだけが上書きされる。

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

Boolean

任意

serviceName

対応する WSDL ファイルの生成が必要な Web サービス名。

Web サービス名は web-services.xml デプロイメント記述子ファイル内の <web-service> 要素に一致する。

serviceName 属性が未指定の場合、wsdlgen タスクは web-services.xml ファイル内で最初に見つかったサービス名の WSDL ファイルを生成する。

String

任意

warName

Web サービスの web-services.xml デプロイメント記述子ファイルが格納されている WAR ファイルの名前。

String

必須

wsdlFile

生成された WSDL を格納する出力ファイルの名前。

String

必須

相当するコマンドライン ユーティリティ

wsdlgen Ant タスクに相当するコマンドライン ユーティリティは weblogic.webservice.wsdlgen です。ユーティリティのフラグの説明は、前の節で説明した Ant タスク属性の説明と同じです。

weblogic.webservice.wsdlgen ユーティリティは次のフラグをサポートしています (フラグの説明は該当する属性を参照)。

 


wspackage

wspackage Ant タスクの用途は次のとおりです。

以下のようなコンポーネントがすでに生成されていることが前提となります。

通常は、clientgenautotypesource2wsddwsdl2Service といった他の Ant タスクを使用して前述のコンポーネントを生成します。

wspackage Ant タスクを使用して既存の EAR ファイルにコンポーネントを追加する場合は、既存のコンポーネントがいっさい上書きされないように、必ず overwrite="false" 属性を指定してください。 output 属性を使用すると、既存の EAR ファイルの完全パス名を指定できます。

注意 : wspackage Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.wspackage.WSPackage です。

次の例では、wspackage Ant タスクを使用して、WebLogic Web サービスの各コンポーネントを 1 つの新しい EAR ファイルにパッケージ化する方法を示します。

<wspackage
output="ears/myWebService.ear"
contextURI="web_services"
codecDir="autotype"
webAppClasses="example.ws2j.service.SimpleTest"
ddFile="ddfiles/web-services.xml"
/>

次の例では、ears/myWebService.ear という既存の EAR ファイルにコンポーネントを追加する方法を示します。

<wspackage
output="ears/myWebService.ear"
overwrite="false"
filesToEar="myEJB2.jar"
/>

属性

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

表 B-13 wspackage Ant タスクの属性

属性

説明

データ型

必須/任意

codecDir

Web サービスでパラメータまたは戻り値として使用される非組み込みデータ型のシリアライゼーション クラスが格納されているディレクトリの名前。

String

任意

contextURI

Web サービスのコンテキスト ルート。この値は、Web サービスを呼び出す URL 内で使用する。

contextURI 属性のデフォルト値は warName 属性の値になる。

String

任意

ddFile

既存の Web サービスのデプロイメント記述子ファイル (web-services.xml) の完全パス名。

この属性を指定しない場合、既存の EAR ファイルにコンポーネントを追加する目的で wspackage Ant タスクを使用するものと見なされる。この場合は、overwrite="false" も指定して、output 属性に既存の EAR ファイルを設定する必要がある。

String

任意

filesToEar

EAR のルート ディレクトリにパッケージ化されるファイルのカンマ区切りリスト。

この属性を使用すると、他のサポート EJB JAR ファイルに加えて、Web サービスを実装する EJB JAR ファイルを指定できる。

String

任意

filesToWar

Web サービスの Web アプリケーションのルート ディレクトリにパッケージ化される (クライアント JAR ファイルなどの) 追加ファイルのカンマ区切りリスト。

String

任意

output

Web サービスとその全コンポーネントを格納する EAR ファイルまたは展開ディレクトリのパス名。 wspackage Ant タスクを使用して既存の EAR ファイルにコンポーネントを追加する場合、この属性には既存の EAR ファイルの完全パス名を指定する。

EAR ファイルを作成または更新するには、EAR ファイルの指定時に .ear サフィックスを使用する (ears/mywebservice.ear など)。 属性値に .ear サフィックスがない場合、wspackage タスクは展開ディレクトリを作成する。

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

String

必須

overwrite

既存の EAR ファイルまたはディレクトリのコンポーネントを上書きするかを指定する。コンポーネントとしては、web-services.xml ファイル、シリアライゼーション クラス、クライアント JAR ファイルなどがある。

この属性の有効な値は、True および False。デフォルト値は True

False を指定すると、wspackage Ant タスクは EAR ファイル/ディレクトリの内容と情報を web-services.xml ファイルにマージしようとする。

既存の EAR ファイルにコンポーネントを追加するために wspackage Ant タスクを使用している場合は、overwrite="false" を指定する必要がある。

Boolean

任意

utilJars

Web サービスの Web アプリケーションの WEB-INF/lib ディレクトリにパッケージ化する必要のあるファイルのカンマ区切りリスト。

String

任意

warName

Web サービスが書き込まれる WAR ファイルの名前。WAR ファイルは EAR ファイルの最上位に作成される。

デフォルト値は web-services.war

String

任意

webAppClasses

Web サービスの Web アプリケーションの WEB-INF/classes ディレクトリにパッケージ化する必要のあるクラス ファイルのカンマ区切りリスト。

この属性を使用すると、Web サービスを実装する Java クラス、SOAP ハンドラ クラスなどを指定できる。

String

任意

 

フッタのナビゲーションのスキップ  ページの先頭 前 次