BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

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

 Previous Next Contents PDF で侮ヲ  

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 タスクの概要と、それに対応するコマンドライン ユーティリティの名前について説明します。

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

Ant タスク

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

説明

autotype

なし

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

clientgen

weblogic.webservice.clientgen

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

servicegen

weblogic.webservice.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 ソース ファイルが含まれる。

wspackage

なし

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

wsgen

なし

6.1 WebLogic Web サービスをバージョン 7.0 の WebLogic Server にアップグレードする。

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

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

  1. Web サービス Ant タスクへの呼び出しを含む build.xml というファイルを作成します。

    次の例は、わかりやすくするために 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 タスクを指定する例は後の節で紹介します。

  2. 環境を設定します。

    Windows NT では、setWLSEnv.cmd コマンドを実行します。WL_HOME¥server¥bin ディレクトリにあります。WL_HOME は WebLogic プラットフォームがインストールされている最上位ディレクトリです。

    UNIX では、setWLSEnv.sh コマンドを実行します。WL_HOME/server/bin ディレクトリにあります。WL_HOME は WebLogic プラットフォームがインストールされている最上位ディレクトリです。

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

WebLogic 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 スキーマ ファイルで指定されている場合 (たとえば 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 タスクを実行します。

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

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

  1. コマンド シェル ウィンドウを開きます。

  2. 環境を設定します。

    Windows NT では、setWLSEnv.cmd コマンドを実行します。WL_HOME¥server¥bin ディレクトリにあります。WL_HOME は WebLogic プラットフォームがインストールされている最上位ディレクトリです。

    UNIX では、setWLSEnv.sh コマンドを実行します。WL_HOME/server/bin ディレクトリにあります。WL_HOME は WebLogic プラットフォームがインストールされている最上位ディレクトリです。

  3. 次の例に示すように、java コマンドを使用してユーティリティを実行します。
prompt> java weblogic.webservice.clientgen ¥
-ear c:¥myapps¥myapp.ear ¥
-serviceName myService ¥
-packageName myservice.client ¥
-clientJar c:/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 クラス 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

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

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

wsdl

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

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

javaTypes

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

たとえば、次のように指定する。

javaTypes="my.class1,my.class2"

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

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

javaComponents

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

たとえば、次のように指定する。

javaComponents="my.class1,my.class2"

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

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

destDir

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

必須

typeMappingFile

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

autotype Ant タスクは、このファイルにあるデータ型の非組み込みデータ型コンポーネントは生成しない。

任意

packageBase

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

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

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

任意

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

packageName

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

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

注意: この属性は必須でないが、ほとんどの場合には指定することをお勧めする。

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

任意

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

targetNamespace

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

必須

 


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 ファイルが含まれています。詳細については、Java クライアント アプリケーション JAR ファイルの取得を参照してください。

警告: autotypeservicegen、および 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 タスクの属性について説明します。

属性

説明

必須/任意

wsdl

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

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

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

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 ファイルを更新する必要がある。

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

warName

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

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

任意

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

serviceName

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

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

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

任意

typeMappingFile

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

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

任意

packageName

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

必須

autotype

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

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

任意

clientJar

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

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

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

必須

overwrite

既存のクライアント JAR ファイルを上書きするかを指定する。

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

任意

useServerTypes

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

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

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

任意

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

saveWSDL

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

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

任意

j2me

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

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

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

任意

useLowerCaseMethodNames

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

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

任意

typePackageName

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

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

この属性を指定しておらず、かつ WSDL ファイル内の XML スキーマがターゲット ネームスペースを定義している場合、clientgen Ant タスクが、ターゲット ネームスペースに基づき、パッケージ名を生成する。 つまり、XML スキーマがターゲット ネームスペースを定義していない場合は、clientgen Ant タスクの typePackageName (推奨) 属性、または typePackageBase 属性のいずれかを指定する必要がある。

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

wsdl 属性を指定しており、WSDL ファイル内の XML スキーマでターゲット ネームスペースが定義されていない場合のみ、必須。

typePackageBase

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

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

この属性を指定しておらず、かつ WSDL ファイル内の XML スキーマがターゲット ネームスペースを定義している場合、clientgen Ant タスクが、ターゲット ネームスペースに基づき、パッケージ名を生成する。 つまり、XML スキーマがターゲット ネームスペースを定義していない場合は、clientgen Ant タスクの typePackageName (推奨) 属性、または typePackageBase 属性のいずれかを指定する必要がある。

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

wsdl 属性を指定しており、WSDL ファイル内の XML スキーマでターゲット ネームスペースが定義されていない場合のみ、必須。

usePortNameAsMethodName

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

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

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

任意

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

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

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

 


servicegen

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

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

警告: autotypeservicegen、および 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 タスクの階層を示しています。

icon element icon element icon element icon element icon element

servicegen

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

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

属性

説明

必須/任意

destEar

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

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

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

必須

overwrite

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

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

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

任意

warName

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

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

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

任意

contextURI

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

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

任意

service

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

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

属性

説明

必須/任意

ejbJar

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

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

javaClassComponents

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

たとえば、次のように指定する。

javaClassComponents="my.FirstClass,my.SecondClass"

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

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

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

ignoreAuthHeader

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

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

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

任意

includeEJBs

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

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

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

任意

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

excludeEJBs

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

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

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

任意

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

serviceName

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

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

必須

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 は、この属性を指す。

必須

targetNamespace

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

必須

protocol

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

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

任意

expandMethods

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

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

任意

generateTypes

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

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

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

任意

typeMappingFile

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

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

任意

style

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 つのスタイルを混在させることはできない。

任意

JMSDestination

JMS トピックまたはキューの JNDI 名。

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

JMSDestinationType

JMS 送り先のタイプ (キューまたはトピック)。

有効な値は topic または queue

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

JMSAction

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

有効な値は send または receive

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

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

JMSConnectionFactory

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

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

JMSOperationName

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

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

任意

JMSMessageType

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

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

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

任意

client

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

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

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

属性

説明

必須/任意

clientJarName

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

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

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

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

任意

packageName

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

必須

useServerTypes

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

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

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

任意

saveWSDL

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

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

任意

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

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

警告: weblogic.webservice.servicegen コマンドライン ユーティリティを使用して Web サービスを自動的にアセンブルする場合、web-services.xml ファイルに作成できる Web サービスは 1 つのみです。

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

 


source2wsdd

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 タスクの属性について説明します。

属性

説明

必須/任意

javaSource

Web サービスのコンポーネントを実装する Java ソース ファイルの名前。

必須

ddFile

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

必須

typesInfo

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

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

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

必須

serviceURI

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

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

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

必須

sourcePath

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

任意

ignoreAuthHeader

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

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

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

任意

 


wsdl2Service

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 タスクの属性について説明します。

属性

説明

必須/任意

wsdl

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

必須

destDir

生成されたコンポーネント (web-services.xml ファイルおよび Web サービスを部分的に実装する Java ソース ファイル) が格納されるディレクトリの完全パス名。

必須

packageName

Web サービスを部分的に実装する、生成された Java ソース ファイルのパッケージ名。

必須

serviceName

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

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

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

任意

typeMappingFile

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

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

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

 


wspackage

wspackage Ant タスクは、WebLogic Web サービスのさまざまなコンポーネントをデプロイ可能な EAR ファイルにパッケージ化します。これは、以下のようなコンポーネントが既に生成されていることを前提とします。

通常は、clientgenautotypesource2wsddwsdl2Service といった他の 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 タスクの属性について説明します。

属性

説明

必須/任意

output

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

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

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

必須

warName

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

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

注意: 展開ディレクトリを output 属性を使用して指定した場合、warName 属性に .war サフィックスを指定しても、wspackage タスクは展開 Web アプリケーション ディレクトリを作成する。

任意

contextURI

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

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

任意

ddFile

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

必須

filesToEar

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

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

任意

filesToWar

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

任意

webAppClasses

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

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

任意

codecDir

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

任意

overwrite

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

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

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

任意

 


wsgen

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 デプロイメント記述子ファイルに適切な情報が追加されます。

属性

要素

説明

targetNameSpace

rpcservice、

messageservice

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

この属性のデフォルト値は、既存の 6.1 build.xml ファイルに追加していない場合、http://example.org になる。

packageName

clientjar

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

この属性のデフォルト値は、既存の 6.1 build.xml ファイルに追加していない場合、org.example になる。

 

Back to Top Previous Next