BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Server > WebLogic Web サービス プログラマーズ ガイド > Web サービス Ant タスクとコマンドライン ユーティリティ |
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/ を参照してください。
属性ではなくフラグを使用してユーティリティの動作を指定することにより、一部の Ant タスクをコマンドライン ユーティリティとして実行することも可能です。フラグの説明は、それに対応する属性の説明と完全に同じです。
警告: Ant タスクのすべての属性が、それに相当するコマンドライン ユーティリティへのフラグとして使用可能なわけではありません。相当するコマンドラインを使用するときは、サポートされているフラグのリストを各 Ant タスクについて説明している節で確認してください。
これらの Ant タスクの使用法の詳しい例と説明については、Ant タスクを使用した WebLogic Web サービスのアセンブルを参照してください。
Web サービス Ant タスクとコマンドライン ユーティリティのリスト
次の表では、BEA が提供する Web サービス Ant タスクの概要と、それに対応するコマンドライン ユーティリティの名前について説明します。
次の例は、わかりやすくするために Web サービス Ant タスク servicegen と clientgen の詳細が省かれた、簡単な 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>
prompt> ant
各 WebLogic Ant タスクには、新しいディレクトリまたは JAR ファイルを現在の CLASSPATH 環境変数に追加できるように、classpath 属性または要素を受け取ります。
次の例では、servicegen Ant タスクの classpath 属性を使用して CLASSPATH 変数に追加する方法を示します。
<servicegen destEar="myEJB.ear"
classpath="${java.class.path};d:¥my_fab_directory"
...
</servicegen>
次の例では、<classpath> 要素を使用して CLASSPATH に追加する方法を示します。
<servicegen ...>
<classpath>
<pathelement path="${java.class.path}" />
<pathelement path="d:¥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 Server に付属の Java Ant ユーティリティでは、ANTCLASSPATH 変数を設定した際の WL_HOME\server\bin ディレクトリにある ant (UNIX) または ant.bat (Windows) コンフィグレーション ファイルを使用します。WL_HOME は、インストールした WebLogic Platform の最上位ディレクトリです。ANTCLASSPATH 変数を更新する必要がある場合は、使用しているオペレーティング システムの適切なファイルを変更してください。
WSDL および XML スキーマ ファイルを操作する際のオペレーティング システムの大文字/小文字の区別の違い
WebLogic Web サービスの Ant タスクの多くには、WSDL や XML スキーマ ファイルなどのオペレーティング システム ファイルを指定するために使用できる属性があります。 たとえば、clientgen Ant タスクの wsdl 属性を使用すると、Web サービスを記述する既存の WSDL ファイルから Web サービス固有のクライアント JAR ファイルを作成できます。
Ant タスクは、大文字と小文字を区別してそれらのファイルを処理します。 つまり、たとえば名前が大文字と小文字の点でのみ異なる 2 つの複合型が XML スキーマ ファイルで指定されている場合 (たとえば MyReturnType と MYRETURNTYPE)、clientgen Ant タスクはその複合データ型の Java 表現に対応する 2 つの別々の Java ソース ファイル セットを適切に生成します (MyReturnType.java と MYRETURNTYPE.java)。
しかし、それらのソース ファイルをそれぞれのクラス ファイルにコンパイルすると、Ant タスクを Microsoft Windows で実行する場合には問題が生じます。なぜなら、Windows は大文字と小文字を区別しないオペレーティング システムだからです。 つまり、Windows では MyReturnType.java と MYRETURNTYPE.java が同じ名前であると判断されるのです。 したがって、Windows でこれらのファイルをコンパイルする際には、2 つ目のクラス ファイルが最初のファイルを上書きし、クラス ファイルが 1 つしか残りません。 それでも Ant タスクは 2 つのクラスがコンパイルされていると想定しているので、次のようなエラーが生じることになります。
c:¥src¥com¥bea¥order¥MyReturnType.java:14:
class MYRETURNTYPE is public, should be declared in a file named MYRETURNTYPE.java
public class MYRETURNTYPE
^
この問題を回避するには、この種の名前の衝突が起こらないように XML スキーマを書き換えます。もしそれが不可能である場合は、Unix などの大文字と小文字を区別するオペレーティング システムで Ant タスクを実行します。
Web サービス コマンド ライン ユーティリティを使用する
Ant タスクに相当するコマンドライン ユーティリティを使用するには、次の手順に従います。
prompt> java weblogic.webservice.clientgen ¥
-ear c:¥myapps¥myapp.ear ¥
-serviceName myService ¥
-packageName myservice.client ¥
-clientJar c:/myapps/myService_client.jar
autotype Ant タスクは、Web サービス オペレーションのパラメータまたは戻り値として使用される非組み込みデータ型の以下のコンポーネントを生成します。
autotype でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、servicegen および autotype Ant タスクでサポートされる非組み込みデータ型を参照してください。
autotype Ant タスクでは、以下のいずれかの入力を指定できます。
destDir 属性を使用すると、生成されたコンポーネントが格納されるディレクトリの名前を指定できます。XML スキーマとデータ型マッピング情報は、types.xml というファイルに生成されます。このファイルは、既存の web-services.xml ファイルを非組み込みデータ型マッピング情報で手動更新するために使用するか、あるいは servicegen または clientgen Ant タスクの typeMappingFile 属性、または source2wsdd Ant タスクの typesInfo 属性と関連して使用できます。
警告: autotype、servicegen、および clientgen Ant タスクによって生成されたシリアライザ クラスと Java および XML 表現はラウンドトリップできません。詳細については、生成されたデータ型コンポーネントの非ラウンドトリップを参照してください。
注意: autotype Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.javaschema.JavaSchema です。
次の例は、Java クラス mypackage.MyType の非組み込みデータ型コンポーネントを作成する方法を示しています。
<autotype javaTypes="mypackage.MyType"
targetNamespace="http://www.foobar.com/autotyper"
packageName="a.package.name"
destDir="d:¥output" />
次の例は、上の例に類似していますが、mypackage.MyType Java データ型の配列の非組み込みデータ型コンポーネントを作成する点が異なります。
<autotype javaTypes="[Lmypackage.MyType;"
targetNamespace="http://www.foobar.com/autotyper"
packageName="a.package.name"
destDir="d:¥output" />
注意: [Lclassname; 構文は、java.lang.Class.getName() メソッドのドキュメントで概説されている Java クラスの命名規約に従っています。
次の例は、WSDL ファイルに対して autotype Ant タスクを使用する方法を示しています。
<autotype wsdl="file:¥wsdls¥myWSDL"
targetNamespace="http://www.foobar.com/autotyper"
packageName="a.package.name"
destDir="d:¥output" />
次の表では、autotype Ant タスクの属性について説明します。
schemaFile、wsdl、javaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。 |
||
schemaFile、wsdl、javaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。 |
||
非組み込みデータ型を表す Java クラス名のカンマ区切りリスト。Java クラスがコンパイルされ、CLASSPATH 内に存在する必要がある。 javaTypes="my.class1,my.class2" 注意: Java データ型の配列を指定するには、構文 [Lclassname; を使用する。 例については、例を参照。 |
schemaFile、wsdl、javaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。 |
|
Web サービス オペレーションを実装する Java クラス名のカンマ区切りリスト。Java クラスがコンパイルされ、CLASSPATH 内に存在する必要がある。 javaComponents="my.class1,my.class2" autotype Ant タスクは、リストの Java クラスを参照し、見つかったすべての非組み込みデータ型のコンポーネントを自動的に生成する。 |
schemaFile、wsdl、javaTypes、または javaComponents のいずれかの属性を 1 つだけ指定する必要がある。 |
|
生成されたコンポーネントが格納されるディレクトリの完全パス名。XML スキーマとデータ型マッピング情報は、types.xml というファイルに生成される。 |
||
必要なコンポーネントが既に生成されている非組み込みデータ型のデータ型マッピング情報が格納されているファイル。情報の形式は、web-services.xml ファイルの <type-mapping> 要素内のデータ型マッピング情報と同じ。 |
||
Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの基本パッケージ名。つまり、autotype Ant タスクは、指定されたパッケージの基本名に付加された個々の Java クラスに固有の名前を生成するが、生成された個々の Java クラスは同じパッケージ名の一部となる。 この属性を指定しない場合は、autotype Ant タスクが基本パッケージ名を生成する。 注意: BEA では、この属性よりも、packageName 属性を使用して完全パッケージ名を指定することを推奨。packageBase 属性は、JAX-RPC に準拠している。 |
||
Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの完全パッケージ名。 |
||
clientgen Ant タスクは、クライアント アプリケーションが WebLogic Web サービスと非 WebLogic Web サービスの両方の呼び出しに使用できる Web サービス固有のクライアント JAR ファイルを生成します。通常、clientgen Ant タスクは既存の WSDL ファイルからクライアント JAR ファイルを生成するために使用します。ただし、WebLogic Web サービスの実装が含まれた EAR ファイルで使用することも可能です。
clientgen Ant タスクを使用すると、クライアント JAR ファイルを既存の Web サービス (WebLogic Server 上で実行されている必要はない) の WSDL ファイルから、または WebLogic Web サービス実装を含んでいる EAR ファイルから生成できます。
WebLogic Server 配布キットには、WebLogic Web サービス実行時コンポーネントのサポートに必要なクライアント サイド クラスを含んでいるクライアント実行時 JAR ファイルが含まれています。詳細については、Java クライアント アプリケーション JAR ファイルの取得を参照してください。
警告: autotype、servicegen、および clientgen Ant タスクによって生成されたシリアライザ クラスと Java および XML 表現はラウンドトリップできません。詳細については、生成されたデータ型コンポーネントの非ラウンドトリップを参照してください。
警告: clientgen Ant タスクは要求/応答または通知 WSDL 操作をサポートしていません。つまり、これらの種類の操作を含む WSDL ファイルからクライアント JAR ファイルを作成しようとすると、Ant タスクは操作を無視します。
注意: clientgen Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask です。
<clientgen wsdl="http://example.com/myapp/myservice.wsdl"
packageName="myapp.myservice.client"
clientJar="c:/myapps/myService_client.jar"
/>
次の表では、clientgen Ant タスクの属性について説明します。
クライアント JAR ファイルの生成が必要な (WebLogic または非 WebLogic) Web サービスを記述する WSDL の完全パス名または URL。 クライアント JAR ファイル内の生成されたスタブ ファクトリ クラスは、デフォルト コンストラクタ内のこの属性の値を使用する。 |
||
クライアント JAR ファイルの生成が必要な WebLogic Web サービス実装を含んでいる EAR ファイルまたは展開ディレクトリの名前。 注意: clientgen の saveWSDL 属性が True (デフォルト値) に設定されている場合、clientgen Ant タスクは EAR ファイルの情報から WSDL ファイルを生成し、生成された JAR ファイルに格納する。clientgen は Web サービスをホストする WebLogic Server インスタンスのホスト名またはポート番号を認識しないため、clientgen は生成された WSDL の次のエンドポイント アドレスを使用する。 http://localhost:7001/contextURI/serviceURI contextURI と serviceURI は、WebLogic Web サービスのホーム ページおよび WSDL の URLで説明した値と同じ。このエンドポイント アドレスが正しくなく、クライアント アプリケーションがクライアント JAR ファイルに格納されている WSDL ファイルを使用する場合、正確なエンドポイント アドレスを指定して手動で WSDL ファイルを更新する必要がある。 |
||
対応するクライアント JAR ファイルの生成が必要な Web サービス名。 wsdl 属性を指定すると、Web サービス名は WSDL ファイル内の <service> 要素に対応する。ear 属性を指定すると、Web サービス名は web-services.xml デプロイメント記述子ファイル内の <web-service> 要素に対応する。 serviceName 属性が未指定の場合、clientgen タスクは WSDL または web-services.xml ファイル内で最初に見つかったサービス名のクライアント クラスを生成する。 |
||
データ型マッピング情報を含むファイルで、JAX-RPC スタブの生成時に clientgen タスクにより使用される。情報の形式は、web-services.xml ファイルの <type-mapping> 要素内のデータ型マッピング情報と同じ。 ear 属性を指定すると、このファイル内の情報により、web-services.xml ファイル内のデータ型マッピング情報がオーバーライドされる。 |
||
clientgen タスクが、Web サービス オペレーションへのパラメータまたは戻り値として使用される非組み込みデータ型に対するシリアライゼーション クラスを生成してクライアント JAR ファイルに入れるかを指定する。 |
||
生成されたクライアント インタフェース クラス、スタブ クラス、省略可能なシリアライゼーション クラスなどを clientgen タスクが入れる JAR ファイルまたは展開ディレクトリの名前。 JAR ファイルを作成または更新するには、JAR ファイルの指定時に .jar サフィックスを使用する (myclientjar.jar など)。属性値に .jar サフィックスがない場合、clientgen タスクはディレクトリ名が参照されていると想定する。 存在しない JAR ファイルまたはディレクトリを指定すると、clientgen タスクが新しい JAR ファイルまたはディレクトリを作成する。 |
||
clientgen タスクが、Web サービスで使用されるいずれかの非組み込み Java データ型の実装を取得する場所を指定する。タスクは Java コードを生成するか、Web サービスの完全な実装を含む EAR ファイルからそれを取得する。 有効な値は True (EAR ファイル内の Java コードを使用) および False。デフォルト値は False。 clientgen でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、servicegen および autotype Ant タスクでサポートされる非組み込みデータ型を参照。 |
||
True に設定されている場合、生成されたクライアント JAR ファイルに Web サービスの WSDL を保存するよう指定する。この場合、クライアント アプリケーションは Web サービスへのスタブを作成するたびに WSDL をダウンロードする必要がなく、ネットワーク使用量が削減されるためにパフォーマンスが一般に向上する。 |
||
clientgen Ant タスクが J2ME/CDC 準拠のクライアント JAR ファイルを作成するかどうかを指定する。 |
||
True に設定されている場合、生成されたスタブのメソッド名の 1 文字目を小文字にするよう指定する。False に設定した場合、メソッド名はすべて WSDL ファイルのオペレーション名と同じになる。 |
||
Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの完全パッケージ名を指定する。 この属性を指定した場合、typePackageBase を同時に指定することはできない。 この属性を指定しておらず、かつ WSDL ファイル内の XML スキーマがターゲット ネームスペースを定義している場合、clientgen Ant タスクが、ターゲット ネームスペースに基づき、パッケージ名を生成する。 つまり、XML スキーマがターゲット ネームスペースを定義していない場合は、clientgen Ant タスクの typePackageName (推奨) 属性、または typePackageBase 属性のいずれかを指定する必要がある。 |
wsdl 属性を指定しており、WSDL ファイル内の XML スキーマでターゲット ネームスペースが定義されていない場合のみ、必須。 |
|
Web サービスで戻り値またはパラメータとして使用される任意の非組み込みデータ型用に生成された Java クラスの基本パッケージ名を指定する。つまり、clientgen Ant タスクは、指定されたパッケージの基本名に付加された個々の Java クラスに固有の名前を生成するが、生成された個々の Java クラスは同じパッケージ名の一部となる。 この属性を指定した場合、typePackageName を同時に指定することはできない。 この属性を指定しておらず、かつ WSDL ファイル内の XML スキーマがターゲット ネームスペースを定義している場合、clientgen Ant タスクが、ターゲット ネームスペースに基づき、パッケージ名を生成する。 つまり、XML スキーマがターゲット ネームスペースを定義していない場合は、clientgen Ant タスクの typePackageName (推奨) 属性、または typePackageBase 属性のいずれかを指定する必要がある。 注意: この属性を使用するよりも、typePackageName 属性で完全パッケージ名を指定する方が適切。typePackageBase 属性は、JAX-RPC に準拠している。 |
wsdl 属性を指定しており、WSDL ファイル内の XML スキーマでターゲット ネームスペースが定義されていない場合のみ、必須。 |
|
clientgen Ant タスクが、WSDL ファイルからクライアントを生成する際に操作の名前を取得する場所を指定する。 この値を True に設定した場合、操作は、WSDL ファイルの <port> 要素の name 属性で指定された名前を取る (<port> は <service> 要素の子要素)。この値を False に設定した場合、操作は、WSDL ファイルの <portType> 要素の name 属性で指定された名前を取る (<portType> は <definitions> 要素の子要素)。 |
clientgen Ant タスクに相当するコマンドライン ユーティリティは weblogic.webservice.clientgen です。ユーティリティのフラグの説明は、前の節で説明した Ant タスク属性の説明と同じです。
weblogic.webservice.clientgen ユーティリティは次のフラグをサポートしています (フラグの説明は該当の属性を参照)。
servicegen Ant タスクは、EJB JAR ファイルまたは Java クラスのリストを入力として受け取り、必要な全 Web サービス コンポーネントを作成し、このコンポーネントをデプロイ可能な EAR ファイルにパッケージ化します。
具体的には、servicegen Ant タスクは、次のタスクを実行します。
警告: autotype、servicegen、および clientgen Ant タスクによって生成されたシリアライザ クラスと Java および XML 表現はラウンドトリップできません。詳細については、生成されたデータ型コンポーネントの非ラウンドトリップを参照してください。
注意: servicegen Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask です。
<servicegen
destEar="c:¥myWebService.ear"
warName="myWAR.war"
contextURI="web_services" >
<service
ejbJar="c:¥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> 要素が 1 つあります。
次の図は、servicegen Ant タスクの階層を示しています。
servicegen Ant タスクは、Web サービスの全コンポーネントを自動的に生成およびアセンブルしてデプロイ可能な EAR ファイルにパッケージ化するメイン タスクです。
次の表では、servicegen Ant タスクの属性について説明します。
<service> 要素は、ステートレス セッション EJB または Java クラスで実装される単一 Web サービスを記述します。
次の表では、servicegen Ant タスクの <service> 要素の属性について説明します。単一 EAR ファイルにパッケージ化する各 Web サービスに対して、1 つの <service> 要素を含めてください。
Web サービス オペレーションのバックエンド コンポーネントを実装する EJB を含む JAR ファイルまたは展開ディレクトリ。servicegen Ant タスクはこの EJB を参照して全コンポーネントを自動生成する。 |
||
Web サービス オペレーションを実装する Java クラス名のカンマ区切りリスト。Java クラスがコンパイルされ、CLASSPATH 内に存在する必要がある。 javaClassComponents="my.FirstClass,my.SecondClass" |
||
SOAP リクエストの Authorization HTTP ヘッダが Web サービスで無視されることを指定する。 注意: この属性は、慎重に使用する必要がある。 この属性の値を True に設定すると、Web サービスを構成する EJB、Web アプリケーション、またはエンタープライズ アプリケーションでアクセス制御のセキュリティ制約が定義されている場合でも、WebLogic Server は Web サービスを呼び出そうとしているクライアント アプリケーションの認証を絶対に行わない。 つまり、認証資格を持たないクライアント アプリケーションでも、セキュリティ制約が定義されている Web サービスを呼び出せることになる。 |
||
非組み込みデータ型コンポーネントの生成が必要な EJB 名のカンマ区切りリスト。 この属性を指定すると、servicegen タスクはこのリスト上の EJB のみを処理する。 EJB 名は、ejbJar 属性で指定される EJB JAR ファイル内の ejb-jar.xml デプロイメント記述子内の <ejb-name> 要素に対応する。 |
||
非組み込みデータ型コンポーネントを生成すべきでない EJB 名のカンマ区切りリスト。 この属性を指定すると、servicegen タスクはこのリスト上の EJB 以外の全 EJB を処理する。 EJB 名は、ejbJar 属性で指定される EJB JAR ファイル内の ejb-jar.xml デプロイメント記述子内の <ejb-name> 要素に対応する。 |
||
注意: servicegen を呼び出す build.xml ファイルに複数の <service> 要素を指定し、各要素の serviceName 属性を同じ値に設定すると、servicegen は複数の <service> 要素を単一 Web サービスにマージしようとする。 |
||
クライアント アプリケーションが Web サービスの呼び出しに使用する URL の Web サービス URI 部分。 注意: /TraderService のように、先頭に「/」を必ず指定すること。 |
||
web-services.xml ファイルの生成時に、servicegen タスクが EJB または Java クラスの各メソッドに別々の <operation> 要素を作成するか、または method="*" 属性を含む 1 つの <operation> 要素のみを指定することで全メソッドを暗黙的に参照するかを指定する。 |
||
servicegen タスクが、パラメータまたは戻り値として使用される非組み込みデータ型に対してシリアライゼーション クラスと Java 表現を生成するかを指定する。 有効な値は True および False。デフォルト値は True。 servicegen でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、servicegen および autotype Ant タスクでサポートされる非組み込みデータ型を参照。 |
||
XML データ型のマッピングに関する追加情報を含むファイル。情報の形式は、web-services.xml 内のデータ型マッピング情報と同じ。 この属性は、操作を実装する EJB または Java クラスが使用する必須のデータ型の XML 記述だけでなく、追加の XML データ型情報も web-services.xml ファイルの <type-mapping> 要素に含める場合に使用する。servicegen タスクは、指定ファイル内の追加情報を、生成された web-services.xml ファイルに追加する。 |
||
servicegen Ant タスクで RPC 指向またはドキュメント指向どちらの Web サービス オペレーションを生成するのかを指定する。 RPC 指向の WebLogic Web サービス オペレーションでは、SOAP エンコーディングを使用する。ドキュメント指向の WebLogic Web サービス オペレーションでは、リテラル エンコーディングを使用する。 この属性で document を指定した場合、生成される Web サービスのオペレーションを実装するメソッドは、パラメータが 1 つでなければならない。servicegen が複数のパラメータを持つメソッドに遭遇した場合、servicegen はそのメソッドを無視し、対応する Web サービス オペレーションが生成されない。 この属性の有効な値は、rpc および document。デフォルト値は rpc。 注意: style 属性は Web サービス全体に適用されるので、1 つの WebLogic Web サービスのすべてのオペレーションが RPC 指向またはドキュメント指向のいずれかでなければならない。同じ Web サービスで 2 つのスタイルを混在させることはできない。 |
||
JMS で実装されるこの Web サービスを呼び出すクライアント アプリケーションが JMS 送り先にメッセージを送信するのか、それとも JMS 送り先からメッセージを受信するのかを指定する。 クライアントが JMS 送り先にメッセージを送信する場合は send、クライアントが JMS 送り先からメッセージを受信する場合は receive を指定する。 |
||
送信または受信オペレーションの 1 つのパラメータのデータ型。 この属性を使用して非組み込みデータ型を指定し、generateTypes 属性を True に設定する場合は、この非組み込みデータ型の Java 表現が必ず CLASSPATH で設定されているようにする。 |
省略可能な <client> 要素は、クライアント アプリケーションが Web サービスの呼び出しに使用するクライアント JAR ファイルの作成方法を指定します。servicegen Ant タスクによりクライアント JAR ファイルを作成する場合にのみこの要素を指定します。
注意: Web サービスのアセンブル時にクライアント JAR ファイルを作成する必要はありません。後で clientgen Ant タスクを使用して JAR ファイルを生成することができます。
次の表では、<client> 要素の属性について説明します。
servicegen タスクは、Web サービスをパッケージ化するときに、クライアント JAR ファイルを EAR ファイルの Web サービス WAR ファイルの最上位ディレクトリに入れる。 デフォルト名は serviceName_client.jar で、serviceName は Web サービスの名前 (serviceName 属性) を指す。 注意: クライアント JAR ファイルへのリンクを Web サービス ホーム ページに自動的に表示する場合は、デフォルト名を変更しないこと。 |
||
servicegen タスクが、Web サービスで使用されるいずれかの非組み込み Java データ型の実装を取得する場所を指定する。タスクは Java コードを生成するか、Web サービスの完全な実装を含む EAR ファイルからそれを取得する。 有効な値は True (EAR ファイル内の Java コードを使用) および False。デフォルト値は False。 servicegen でデータ型コンポーネントを生成できる非組み込みデータ型のリストについては、servicegen および autotype Ant タスクでサポートされる非組み込みデータ型を参照。 |
||
True に設定されている場合、生成されたクライアント JAR ファイルに Web サービスの WSDL ファイルが保存される。この場合、クライアント アプリケーションは Web サービスへのスタブを作成するたびに WSDL ファイルをダウンロードする必要がなく、ネットワーク使用量が削減されるためにパフォーマンスが一般に向上する。 |
servicegen Ant タスクに相当するコマンドライン ユーティリティは weblogic.webservice.servicegen です。ユーティリティのフラグの説明は、前の節で説明した Ant タスク属性の説明と同じです。
警告: weblogic.webservice.servicegen コマンドライン ユーティリティを使用して Web サービスを自動的にアセンブルする場合、web-services.xml ファイルに作成できる Web サービスは 1 つのみです。
weblogic.webservice.servicegen ユーティリティは次のフラグをサポートしています (フラグの説明は該当する属性を参照)。
source2wsdd Ant タスクは、Java クラスを使用して実装される WebLogic Web サービスの Java ソース ファイルから web-services.xml デプロイメント記述子ファイルを生成します。
source2wsdd Ant タスクは、Java クラスのメソッドのパラメータまたは戻り値として使用される非組み込みデータ型のデータ型マッピング情報を生成しません。Java クラスで非組み込みデータ型が使用される場合は、まず autotype Ant タスクを実行して必要なコンポーネントを生成し、その後に source2wsdd Ant タスクの typesInfo 属性を、autotype Ant タスクで生成された types.xml ファイルに設定します。
Java クラスが他の Java クラス ファイルを参照する場合は、必ず、sourcePath 属性をそれらのファイルが格納されているディレクトリに設定してください。
注意: source2wsdd Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.autotype.JavaSource2DD です。
<source2wsdd
javaSource="c:¥source¥MyService.java"
typesInfo="c:¥autotype¥types.xml"
ddFile="c:¥ddfiles¥web-services.xml"
serviceURI="/MyService"
/>
次の表では、source2wsdd Ant タスクの属性について説明します。
wsdl2Service Ant タスクは既存の WSDL ファイルを入力として、以下の WebLogic Web サービス コンポーネントを生成します。
Java ソース ファイルには、Java クラスのみで実装される WebLogic Web サービスのテンプレートが格納されます。このテンプレートには、WSDL ファイルのオペレーションに対応する完全なメソッド シグネチャが含まれています。希望通りに機能するようにそれらのメソッドの実際のコードを記述します。
wsdl2Service Ant タスクは、(<service> 要素で指定された) WSDL ファイルの 1 つのサービスのみで部分的な実装を生成します。serviceName 属性を使用すると、特定のサービスを指定できます。この属性を指定しない場合、wsdl2Service Ant タスクでは WSDL ファイルの最初の <service> 要素の部分的な実装が生成されます。
wsdl2Service Ant タスクは、WSDL ファイルのオペレーションのパラメータまたは戻り値として使用される非組み込みデータ型のデータ型マッピング情報を生成しません。WSDL で非組み込みデータ型が使用される場合は、まず autotype Ant タスクを実行してデータ型マッピング情報を生成し、その後に wsdl2Service Ant タスクの typeMappingFile 属性を autotype Ant タスクで生成された types.xml ファイルに設定します。
注意: wsdl2Service Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.wsdl2service.WSDL2Service です。
<wsdl2service
wsdl="c:¥wsdls¥myService.wsdl"
destDir="c:¥myService¥implementation"
typeMappingFile="c:¥autotype¥types.xml"
packageName="example.ws2j.service"
/>
次の表では、wsdl2Service Ant タスクの属性について説明します。
wspackage Ant タスクは、WebLogic Web サービスのさまざまなコンポーネントをデプロイ可能な EAR ファイルにパッケージ化します。これは、以下のようなコンポーネントが既に生成されていることを前提とします。
通常は、clientgen、autotype、source2wsdd、wsdl2Service といった他の Ant タスクを使用して前述のコンポーネントを生成します。
注意: wspackage Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.wspackage.WSPackage です。
<wspackage
output="c:¥myWebService.ear"
contextURI="web_services"
codecDir="c:¥autotype"
webAppClasses="example.ws2j.service.SimpleTest"
ddFile="c:¥ddfiles¥web-services.xml"
/>
次の表では、wspackage Ant タスクの属性について説明します。
wsgen Ant タスクは、バージョン 6.1 の WebLogic Web サービスをバージョン 7.0 にアップグレードします。具体的には、次の操作を行います。
このタスクは、バージョン 6.1 で使用されていたのと同じ build.xml ファイルを入力として受け取って Web サービスを作成します。B-40 ページの「その他の属性」に説明されているとおり、2 つの新しい属性を必要に応じて追加できます。このタスクは、6.1 Web サービスの作成に使用されていたものと同じアーカイブ ファイルまたは展開ディレクトリも入力として受け取ります。
警告: 新しい 7.0 Web サービスのアセンブルにはこの Ant タスクを使用しないでください。代わりに、servicegen Ant タスクを使用します。wsgen Ant タスクは Web サービスをバージョン 6.1 から 7.0 にアップグレードするためにのみ使用されるので、このタスクはこのバージョンの WebLogic Server では非推奨になっています。
注意: wsgen Ant タスクの完全修飾名は、weblogic.ant.taskdefs.webservices.wsgen.WSGenTask です。
次の build.xml は、6.1 RPC スタイル Web サービスの例からの抜粋です。この例には、新しい属性である targetNameSpace が含まれています。
<wsgen
destpath="weather.ear"
context="/weather">
<rpcservices path="weather.jar">
<rpcservice bean="statelessSession"
uri="/weatheruri"
targetNameSpace="http://www.bea.com/examples"/>
</rpcservices>
</wsgen>
wsgen を使用して 6.1 Web サービスをバージョン 7.0 にアップグレードするときは 6.1 build.xml ファイルを使用するため、build.xml ファイルの属性と要素は、6.1 バージョンの『WebLogic Web サービス プログラマーズ ガイド』で説明されている属性と要素になります。詳細については、「build.xml の要素と属性」を参照してください。
次の表にリストされている 2 つの属性を 6.1 build.xml ファイルに追加でき、wsgen によって新しい web-services.xml デプロイメント記述子ファイルに適切な情報が追加されます。
この属性のデフォルト値は、既存の 6.1 build.xml ファイルに追加していない場合、http://example.org になる。 |
||
生成されたクライアント インタフェースとスタブ ファイルをクライアント JAR ファイルにパッケージ化するパッケージ名。 この属性のデフォルト値は、既存の 6.1 build.xml ファイルに追加していない場合、org.example になる。 |
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |