WebLogic Web サービス プログラマーズ ガイド
![]() |
![]() |
![]() |
![]() |
以下の節では、WebLogic Web サービスの反復的な開発プロセスについて説明します。
WebLogic Web サービスのプログラミング モデルは JWS ファイル (JWS アノテーションを使用して Web サービスの形式や動作を指定した Java ファイル) と、JWS ファイルを実行する Ant タスクを中心に展開されます。JWS アノテーションは JDK バージョン 5.0 の新しいメタデータ機能に基づいており (JSR-175 で規定)、Web Services Metadata for the Java Platform 仕様 (JSR-181) で定義された標準のアノテーションと WebLogic 固有の追加のアノテーションがあります。このプログラミング モデルの詳細については、「WebLogic Web サービスの構造」を参照してください。
以下の節では、Web サービスを繰り返し開発する主要な手順を、Java から開始する場合、または既存の WSDL ファイルから開始する場合について説明します。
反復的な開発とは、希望どおりに動作するまで、Web サービスを繰り返しコーディング、コンパイル、パッケージ化、デプロイ、およびテストできるように、開発環境を設定することです。WebLogic Web サービス プログラミング モデルでは、Ant タスクを使用して、反復的な開発のほとんどの手順を実行します。一般に、すべての手順に対応するターゲットを含んだ 1 つの build.xml
ファイルを作成して、そのターゲットを繰り返し実行します。JWS ファイルを新しい Java コードで更新したら、その更新が期待どおりに動作することをテストします。
この節では、Java から開始して WebLogic Web サービスを繰り返し開発する一般的な手順について説明します。つまり、JWS ファイルを最初からコーディングして、サービスについて記述する WSDL ファイルを後で生成するという手順です。このプロセスの例については、「一般的な Web サービスの使用例とサンプル」を参照してください。以下に示すのは推奨の手順に過ぎません。既に独自の開発環境を設定してある場合は、WebLogic Web サービスを開発するために既存の環境を更新する際のガイドとして、この手順を利用できます。
この手順では、WebLogic Web サービスの分割開発ディレクトリ環境は使用しません。この開発環境を使用していて、Web サービスの開発をそこに統合する場合は、詳細について「Web サービスの WebLogic 分割開発ディレクトリ環境への統合」を参照してください。
Java から開始して WebLogic Web サービスを繰り返し開発するには、次の手順に従います。
bin
サブディレクトリにある setDomainEnv.cmd
(Windows) または setDomainEnv.sh
(UNIX) コマンドを実行して、WebLogic Server 環境を設定します。WebLogic Server ドメインのデフォルトの場所は、BEA_HOME
/user_projects/domains/
domainName
です。BEA_HOME
は BEA Products の最上位のインストール ディレクトリ、domainName
はドメインの名前です。build.xml
ファイルなどが格納されるプロジェクト ディレクトリを作成します。このディレクトリには自由に名前を付けることができます。「JWS ファイルのプログラミング」を参照してください。
「ユーザ定義の Java データ型のプログラミング」を参照してください。
「基本的な Ant build.xml ファイルの作成」を参照してください。
jwsc
Ant タスクを実行して、ソース コード、データ バインディング アーティファクト、デプロイメント記述子などを出力ディレクトリに生成します。jwsc
Ant タスクでは、この出力ディレクトリに、エンタープライズ アプリケーションのディレクトリ構造を生成します。後で、反復的な開発プロセスの一環として、この展開されたディレクトリを WebLogic Server にデプロイします。「jwsc WebLogic Web サービス Ant タスクの実行」を参照してください。
「WebLogic Web サービスのデプロイとアンデプロイ」を参照してください。
「Web サービスの WSDL の参照」を参照してください。
「Web サービスのテスト」を参照してください。
jwsc
Ant タスクの実行から始まる手順を繰り返します。Web サービスを呼び出すクライアント アプリケーションの記述については、「Web サービスの呼び出し」を参照してください。
この節では、既存の WSDL ファイルに基づいて WebLogic Web サービスを繰り返し開発する一般的な手順について説明します。このプロセスの例については、「一般的な Web サービスの使用例とサンプル」を参照してください。以下に示すのは推奨の手順に過ぎません。既に独自の開発環境を設定してある場合は、WebLogic Web サービスを開発するために既存の環境を更新する際のガイドとして、この手順を利用できます。
この手順では、WebLogic Web サービスの分割開発ディレクトリ環境は使用しません。この開発環境を使用していて、Web サービスの開発をそこに統合する場合は、詳細について「Web サービスの WebLogic 分割開発ディレクトリ環境への統合」を参照してください。
この手順では既存の WSDL ファイルが既にあることを前提としています。
WSDL から開始して WebLogic Web サービスを繰り返し開発するには、次の手順に従います。
bin
サブディレクトリにある setDomainEnv.cmd
(Windows) または setDomainEnv.sh
(UNIX) コマンドを実行して、WebLogic Server 環境を設定します。WebLogic Server ドメインのデフォルトの場所は、BEA_HOME
/user_projects/domains/
domainName
です。BEA_HOME
は BEA Products の最上位のインストール ディレクトリ、domainName
はドメインの名前です。「基本的な Ant build.xml ファイルの作成」を参照してください。
build.xml
Ant ビルド ファイルから読み取り可能なディレクトリに置きます。たとえば、WSDL ファイルをプロジェクト ディレクトリの wsdl_files
子ディレクトリに置くことができます。wsdlc
Ant タスクを実行して、JWS インタフェース、途中まで作成済みの JWS クラス ファイル、XML スキーマ データ型を表す JavaBean などを、出力ディレクトリに生成します。 「wsdlc WebLogic Web サービス Ant タスクの実行」を参照してください。
「wsdlc で生成される途中まで作成済みの JWS 実装クラス ファイルの更新」を参照してください。
wsdlc
Ant タスクによって生成されたアーティファクトと更新した JWS 実装ファイルを指定して jwsc
Ant タスクを実行し、Web サービスを実装するエンタープライズ アプリケーションを生成します。「jwsc WebLogic Web サービス Ant タスクの実行」を参照してください。
「WebLogic Web サービスのデプロイとアンデプロイ」を参照してください。
デプロイ済み Web サービスの WSDL を呼び出すときに使用する URL は、基本的に、元の WSDL 内の <address>
要素の location
属性の値と同じです (ただし、ホストとポートの値が、サービスをデプロイした WebLogic Server インスタンスのホストとポートに相当する場合は除きます)。これは、wsdlc
Ant タスクが JWS 実装ファイル内の @WLHttpTransport
アノテーションの contextPath
および serviceURI
の値を生成し、それらの値を合わせると、元の WSDL で指定されたエンドポイント アドレスと同じ URI が構成されるためです。
デプロイ済み WSDL の呼び出しの詳細については、元の WSDL または「Web サービスの WSDL の参照」を参照してください。
「Web サービスのテスト」を参照してください。
jwsc
Ant タスクの実行から始まる手順を繰り返します。Web サービスを呼び出すクライアント アプリケーションの記述については、「Web サービスの呼び出し」を参照してください。
Ant では、XML で記述されたビルド ファイル (デフォルト名は build.xml
) を使用します。このファイルには、<project>
ルート要素と、Web サービス開発プロセスのさまざまな段階を指定した 1 つまたは複数のターゲットが含まれています。各ターゲットには、1 つまたは複数のタスク、または実行可能なコードが含まれています。この節では、基本的な Ant ビルド ファイルの作成方法について説明し、その後の節では、Web サービス開発プロセスのさまざまな段階 (jwsc
Ant タスクを実行して JWS ファイルを処理する、Web サービスを WebLogic Server にデプロイする、など) の実行方法を指定したターゲットをビルド ファイルに追加する方法について説明します。
以下のスケルトンの build.xml
ファイルでは、以降の節で追加される他のすべてのターゲットを呼び出す、デフォルトの all
ターゲットを指定しています。
<project default="all">
<target name="all"
depends="clean,build-service,deploy" />
<target name="clean">
<delete dir="output" />
</target>
<target name="build-service"><!-- ここに jwsc タスク、関連するタスクを追加 -->
</target>
<target name="deploy">
<!-- ここに wldeploy タスクを追加 -->
</target>
</project>
jwsc
Ant タスクは、標準 (JSR-181) の JWS アノテーションと WebLogic 固有の JWS アノテーションの両方を含む JWS ファイルを入力として取り、WebLogic Web サービスの作成に必要なアーティファクトをすべて生成します。JWS ファイルは、最初から自分でコーディングしたものでも、wsdlc
Ant タスクによって生成されたものでもかまいません。jwsc
によって生成されるアーティファクトには、以下のものがあります。
webservices.xml
と JAX-RPC マッピング ファイルに加えて、jwsc
Ant タスクは、WebLogic 固有の Web サービス デプロイメント記述子 (weblogic-wesbservices.xml
)、web.xml
および weblogic.xml
ファイル (Java クラス実装の Web サービスの場合)、ejb-jar.xml
および weblogic-ejb-jar.xml
(EJB 実装の Web サービスの場合) も生成します。wsdlc
Ant タスクによって生成された JWS ファイルに対して jwsc
Ant タスクを実行する場合、wsdlc
Ant タスクが既にこれらのアーティファクトを生成して JAR ファイルにパッケージ化しているため、jwsc
タスクではこれらのアーティファクトを生成しません。その場合は、jwsc
Ant タスクの属性を使用して、wsdlc
が生成した JAR ファイルを指定します。
必要なアーティファクトをすべて生成した後、jwsc
Ant タスクは、Java ファイル (JWS ファイルも含む) をコンパイルし、コンパイルされたクラスと生成されたアーティファクトを、デプロイ可能な JAR アーカイブ ファイルにパッケージ化して、最後に、その JAR ファイルを格納する、展開されたエンタープライズ アプリケーション ディレクトリを作成します。
jwsc
Ant タスクを実行するには、以下の taskdef
および build-service
ターゲットを build.xml
ファイルに追加します。
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="build-service">
<jwsc
srcdir="src_directory
"
destdir="ear_directory
"
>
<jws file="JWS_file
"
compiledWsdl="WSDLC_Generated_JAR" />
</jwsc>
</target>
ear_directory
- 生成されたすべてのアーティファクトを格納するエンタープライズ アプリケーション ディレクトリ。 src_directory
- JWS ファイルのパッケージ名に相当するサブディレクトリを含む最上位ディレクトリ。JWS_file
- src_directory
属性の値に対して相対的な JWS ファイルのパス名。wsdlc
Ant タスクによって生成された JAR ファイル。注意 : この属性は、「WSDL から開始する」使用例でのみ指定します。この手順は「WSDL ファイルから開始する WebLogic Web サービスの反復的な開発 : 主な手順」で説明されています。
必須の taskdef
要素では、jwsc
Ant タスクの完全修飾クラス名を指定します。
jwsc
Ant タスクの srcdir
および destdir
属性のみが必須です。つまり、デフォルトでは、JWS ファイルが参照する Java ファイル (JavaBean 入力パラメータやユーザ定義の例外など) は JWS ファイルと同じパッケージ内にあると想定されています。これに当てはまらない場合は、sourcepath
属性を使用して、これらの他の Java ファイルの最上位ディレクトリを指定します。詳細については、「jwsc」を参照してください。
以下の build.xml
の抜粋では、JWS ファイルに対して jwsc
Ant タスクを実行する例を示します。
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="build-service">
<jwsc
srcdir="src"
destdir="output/helloWorldEar">
<jws
file="examples/webservices/hello_world/HelloWorldImpl.java" />
</jwsc>
</target>
この例では、現在のディレクトリに対して相対的な output/helloWorldEar
に、エンタープライズ アプリケーションが展開形式で生成されます。JWS ファイルは HelloWorldImpl.java
という名前で、現在のディレクトリに対して相対的な src/examples/webservices/hello_world
ディレクトリにあります。つまり、JWS ファイルはパッケージ examples.webservices.helloWorld
内にあります。
以下の例は前の例と似ていますが、compiledWsdl
属性を使用して、wsdlc
が生成したアーティファクト (「WSDL から開始する」使用例) を含む JAR ファイルを指定している点が異なります。
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<target name="build-service">
<jwsc
srcdir="src"
destdir="output/wsdlcEar">
<jws
file="examples/webservices/wsdlc/TemperaturePortTypeImpl.java"
compiledWsdl="output/compiledWsdl/TemperatureService_wsdl.jar" />
</jwsc>
</target>
上の例で、TemperaturePortTypeImpl.java
ファイルは、途中まで作成済みの JWS ファイルを、サービスが希望どおりに動作するようにビジネス ロジックを含めて更新したものです。compiledWsdl
属性が指定されて JAR ファイルを指し示しているので、jwsc
Ant タスクでは、JAR に含まれているアーティファクトを再生成することはありません。
このタスクを実際に実行するには、コマンドラインで次のように入力します。
prompt> ant build-service
jwsc
Ant タスクのその他の属性については、「jwsc」を参照してください。
wsdlc
Ant タスクは WSDL ファイルを入力として取り、WebLogic Web サービスの実装を構成するアーティファクトを生成します。以下のようなアーティファクトがあります。
wsdlc
Ant タスクは JWS インタフェース ファイルとデータ バインディング アーティファクトを一緒に JAR ファイルにパッケージ化します。この JAR ファイルを後で jwsc
Ant タスクに指定します。この JAR ファイルを更新する必要はありません。更新するファイルは JWS 実装クラスのみです。
wsdlc
Ant タスクを実行するには、以下の taskdef
および generate-from-wsdl
ターゲットを build.xml
ファイルに追加します。
<taskdef name="wsdlc"
classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>
<target name="generate-from-wsdl">
<wsdlc
srcWsdl="WSDL_file
"
destJwsDir="JWS_interface_directory
"
destImplDir="JWS_implementation_directory
"
packageName="Package_name
" />
</target>
WSDL_file
- 部分的な実装を生成する元となる WSDL ファイルの名前 (絶対パスまたは相対パスを含める)。 JWS_interface_directory
- JWS インタフェースおよびデータ バインディング アーティファクトを含む JAR ファイルの生成先となるディレクトリ。 生成される JAR ファイルの名前は WSDLFile
_wsdl.jar
です (WSDLFile
は WSDL ファイルのルート名)。たとえば、file 属性に対して指定した WSDL ファイルの名前が MyService.wsdl
の場合、生成される JAR ファイルは MyService_wsdl.jar
となります。
JWS_implementation_directory
- 途中まで作成済みの JWS 実装ファイルの生成先となる最上位ディレクトリ。ファイルはパッケージ名に対応するサブディレクトリ階層に生成されます。生成される JWS ファイルの名前は PortType
Impl.java
です。PortType
は、Web サービスを生成する WSDL ファイル内の <portType>
要素の name
属性です。たとえば、ポート タイプ名が MyServicePortType
の場合、JWS 実装ファイルは MyServicePortTypeImpl.java
という名前になります。
Package_name
- 生成される JWS インタフェースおよび実装ファイルの生成先となるパッケージ。この属性を指定しない場合、wsdlc
Ant タスクは、WSDL の targetNamespace
に基づいてパッケージ名を生成します。必須の taskdef
要素では、wsdlc
Ant タスクの完全修飾クラス名を指定します。
wsdlc
Ant タスクでは、srcWsdl
および destJwsDir
属性のみが必須です。ただし、通常は、プログラミングを容易にするために、途中まで作成済みの JWS ファイルも生成します。WSDL ファイルの targetNamespace
が、読み取り可能なパッケージ名への変換に適していない場合に備えて、パッケージ名を明示的に指定することをお勧めします。
以下の build.xml
の抜粋では、WSDL ファイルに対して wsdlc
Ant タスクを実行する例を示します。
<taskdef name="wsdlc"
classname="weblogic.wsee.tools.anttasks.WsdlcTask"/>
<target name="generate-from-wsdl">
<wsdlc
srcWsdl="wsdl_files/TemperatureService.wsdl"
destJwsDir="output/compiledWsdl"
destImplDir="impl_output"
packageName="examples.webservices.wsdlc" />
</target>
この例では、既存の WSDL ファイルは TemperatureService.wsdl
という名前で、build.xml
ファイルを格納するディレクトリの wsdl_files
サブディレクトリにあります。JWS インタフェースとデータ バインディング アーティファクトを含む JAR ファイルは output/compiledWsdl
ディレクトリに生成され、JAR ファイルの名前は TemperatureService_wsdl.jar
です。生成される JWS ファイルのパッケージ名は examples.webservices.wsdlc
です。途中まで作成済みの JWS ファイルは、現在のディレクトリに対して相対的な impl_output/examples/webservices/wsdlc
ディレクトリに生成されます。WSDL ファイル内のポート タイプ名が TemperaturePortType
の場合、JWS 実装ファイルの名前は TemperaturePortTypeImpl.java
になります。
このタスクを実際に実行するには、コマンドラインで次のように入力します。
prompt> ant generate-from-wsdl
wsdlc
Ant タスクのその他の属性については、「wsdlc」を参照してください。
wsdlc
Ant タスクは、destImplDir 属性で指定されたディレクトリに、途中まで作成済みの JWS 実装ファイルを生成します。ファイルの名前は PortType
Impl.java
です (PortType
は元の WSDL にある portType の名前)。このクラス ファイルには、オペレーションを実装するメソッド内のビジネス ロジックを除いて、Web サービスへコンパイルするために必要なすべてのものが含まれています。
JWS クラスは、WSDL ファイルに対応する JWS Web サービス エンドポイント インタフェースを実装しています。この JWS インタフェースも wsdlc
によって生成され、他のアーティファクト (WSDL 内の XML スキーマ データ型の Java 表現など) が含まれている JAR ファイル内に置かれています。JWS クラスのパブリック メソッドは WSDL ファイル内のオペレーションに対応しています。
wsdlc Ant タスクは、JWS 実装クラスに @WebService
および @WLHttpTransport
アノテーションを自動的に含めます。属性の値は WSDL 内の関連する値に対応しています。例えば、@WebService
の serviceName
属性は、WSDL ファイル内の <service>
要素の name
属性と同じです。@WLHttpTransport
の contextPath
および serviceUri
属性は共に、WSDL 内の <address>
要素の location
属性で指定されたエンドポイント アドレスを構成します。
JWS ファイルを更新するときは、該当の Web サービス オペレーションが希望どおりに動作するように、メソッドに Java コードを追加します。通常、生成される JWS ファイルには、コードを追加すべき場所に次のようなコメントがあります。
//ここを独自の実装で置き換える
他の JWS アノテーションをファイルに追加することもできますが、以下のような制限があります。
javax.jws.*
パッケージ内) は、@WebService
、@HandlerChain
、@SOAPMessageHandler
、および @SOAPMessageHandlers
のみ。他の標準の JWS アノテーションを指定した場合、JWS ファイルを Web サービスにコンパイルしようとすると、jwsc
Ant タスクはエラーを返します。@WebService
アノテーションでは、serviceName
および endpointInterface
属性のみを指定できる。まれに、WSDL ファイルに複数の <service>
要素が指定されていることがあります。その場合は、serviceName
属性を使用して、wsdlc
Ant タスクで使用していたものとは別の <service>
WSDL 要素を指定します。wsdlc
Ant タスクで生成された JWS インタフェースを指定するには、endpointInterface
属性を使用します。JWS ファイルを更新したら、wsdlc
の出力場所にそのまま置いておかないで、正式なソースの場所に移動することをお勧めします。
以下の例は、「サンプル WSDL ファイル」の WSDL から wsdlc
が生成した JWS 実装ファイルです。太字のテキストは、Web サービスの 1 つのオペレーション (getTemp
) を実装する Java コードを追加する場所を示しています。
package examples.webservices.wsdlc;
import javax.jws.WebService;
import weblogic.jws.*;
/**
* TemperaturePortTypeImpl クラスは、Web サービスのエンドポイント インタフェース
* TemperaturePortType を実装する */
@WebService(
serviceName="TemperatureService",
endpointInterface="examples.webservices.wsdlc.TemperaturePortType")
@WLHttpTransport(
contextPath="temp",
serviceUri="TemperatureService",
portName="TemperaturePort")
public class TemperaturePortTypeImpl implements TemperaturePortType {
public TemperaturePortTypeImpl() {
}
public float getTemp(java.lang.String zipcode)
{
//ここを独自の実装で置き換える
return 0;
}
}
Web サービスはエンタープライズ アプリケーションとしてパッケージ化されるので、Web サービスのデプロイとは、該当する EAR ファイルまたは展開されたディレクトリをデプロイすることになります。
Administration Console の使用から weblogic.Deployer
Java ユーティリティの使用まで、WebLogic アプリケーションのデプロイには多様な方法があります。開発環境とは異なり、プロダクション環境にアプリケーションをデプロイする際には、他にもさまざまな問題を考慮する必要があります。デプロイメントの詳細な説明については、『WebLogic Server 9.1 アプリケーションのデプロイメント』を参照してください。
このガイドでは、開発の性質上、Web サービスの 2 つのデプロイ方法についてのみ説明します。
反復的な開発プロセスの一環として Web サービスを素早くデプロイする最も簡単な方法は、wldeploy
WebLogic Ant タスクを実行するターゲットを、jwsc
Ant タスクが含まれる build.xml
ファイルに追加することです。Java コードを追加してサービスを再生成するたびに、サービスの再デプロイとテストを繰り返し行えるように、Web サービスをデプロイするターゲットとアンデプロイするターゲットの両方を追加することができます。
wldeploy
Ant タスクを使用するには、以下のターゲットを build.xml
ファイルに追加します。
<target name="deploy">
<wldeploy action="deploy"
name="DeploymentName"
source="Source" user="AdminUser"
password="AdminPassword"
adminurl="AdminServerURL"
targets="ServerName"/>
</target>
jwsc
Ant タスクが展開されたエンタープライズ アプリケーション ディレクトリを生成します。t3://localhost:7001
。たとえば、以下の wldeploy
タスクでは、エンタープライズ アプリケーションの展開されたディレクトリ (現在のディレクトリに対して相対的な output/ComplexServiceEar
にある) が myServer
WebLogic Server インスタンスにデプロイされることを指定します。デプロイメント名は ComplexServiceEar
です。
<target name="deploy">
<wldeploy action="deploy"
name="ComplexServiceEar"
source="output/ComplexServiceEar" user="weblogic"
password="weblogic" verbose="true"
adminurl="t3://localhost:7001"
targets="myserver"/>
</target>
Web サービスを実際にデプロイするには、コマンドラインで deploy
ターゲットを実行します。
prompt> ant deploy
ソース コードに変更を加えてから Web サービスを再デプロイできるように、Web サービスを簡単にアンデプロイするターゲットを追加することもできます。
<target name="undeploy">
<wldeploy action="undeploy"
name="ComplexServiceEar"
user="weblogic"
password="weblogic" verbose="true"
adminurl="t3://localhost:7001"
targets="myserver"/>
</target>
Web サービスをアンデプロイするときは、source
属性を指定する必要はなく、名前によってアンデプロイします。
Administration Console を使用して Web サービスをデプロイするには、最初に、ブラウザで次の URL を使用して Web サービスを呼び出します。
http://[host]:[port]/console
次にデプロイメント アシスタントを使用して、エンタープライズ アプリケーションをデプロイします。Administration Console の詳細については、Administration Console オンライン ヘルプを参照してください。
Web サービスの WSDL をブラウザで表示して、Web サービスが適切にデプロイされていることを確認できます。
次の URL は、Web サービスの WSDL をブラウザで表示する方法を示しています。
http://[host
]:[port
]/[contextPath
]/[serviceUri
]?WSDL
7001
)。@WLHttpTransport
JWS アノテーションの contextPath
属性の値。 @WLHttpTransport
JWS アノテーションの serviceUri
属性の値。たとえば、Web サービスを実装する JWS ファイルで以下の @WLHttpTransport
アノテーションを使用しているとします。
...
@WLHttpTransport(contextPath="complex",
serviceUri="ComplexService",
portName="ComplexServicePort")
/**
* この JWS ファイルは WebLogic Web サービスの基本となる
*
*/
public class ComplexServiceImpl {
...
Web サービスが ariel
というホストのデフォルトのポート番号 (7001
) で実行されているとすると、その Web サービスの WSDL を表示する URL は次のようになります。
http://ariel:7001/complex/ComplexService?WSDL
WebLogic Web サービス テスト クライアントを使用すると、コードを記述しないでも、Web ユーザ インタフェースを通じて WebLogic Web サービスを簡単にテストできます。複合型を持つ Web サービスや、WebLogic Server の高度な機能 (会話など) を使用する Web サービスも含めて、Web サービスを素早く簡単にテストできます。テスト クライアントはリクエストの完全なログを自動的に保持しているので、ユーザは以前の呼び出しに戻って結果を表示することができます。テスト クライアントは EAR アーカイブに J2EE アプリケーションとしてパッケージ化されています。
WebLogic Web サービス テスト クライアントを使用して Web サービスをテストするには、まず、BEA dev2dev Web サイトから ZIP をダウンロードして、WebLogic Server に EAR ファイルをインストールする必要があります。テスト クライアントのエンタープライズ アプリケーション (デフォルトの名前は wlstestclient
) を起動したら、ブラウザで次の URL を入力してテスト クライアントを呼び出すことができます。
http://host
:port
/wls_utc
テキスト フィールドにテストする Web サービスの WSDL を入力して、[Go] をクリックします。Web サービスのオペレーションのリストと、関連するテスト データを入力できるテキスト フィールドが表示されます。
テスト クライアントのダウンロード、インストール、および使い方の詳細については、dev2dev サイトの指示を参照してください。
この節では、Web サービスの開発を WebLogic 分割開発ディレクトリ環境に統合する方法について説明します。この WebLogic 機能について理解していること、標準の J2EE アプリケーションおよびモジュール (EJB や Web アプリケーションなど) の開発用にこのタイプの環境を既に設定済みであること、Web サービスの開発が含まれるように build.xml
ファイルを更新しようとしていることを前提としています。
WebLogic 分割開発ディレクトリ環境の詳細については、「分割開発ディレクトリ環境の作成」および WebLogic Server と一緒にインストールされる splitdir/helloWorldEar
サンプルを参照してください。サンプルは、BEA_HOME
/weblogic90/samples/server/examples/src/examples
ディレクトリにあります。BEA_HOME
は BEA Products のメイン インストール ディレクトリ (c:/bea
など) です。
たとえば、メイン プロジェクト ディレクトリが /src/helloWorldEar
である場合、/src/helloWorldEar/helloWebService
というディレクトリを作成します。
prompt> mkdir /src/helloWorldEar/helloWebService
たとえば、JWS ファイルが examples.splitdir.hello
パッケージにパッケージ化されている場合は、examples/splitdir/hello
というディレクトリ階層を作成します。
prompt> cd /src/helloWorldEar/helloWebService
prompt> mkdir examples/splitdir/hello
/src/helloWorldEar/helloWebService/examples/splitdir/hello
) に JWS ファイルを置きます。 build.xml
ファイル内に、「jwsc WebLogic Web サービス Ant タスクの実行」の説明に従って jwsc
WebLogic Web サービス Ant タスクの呼び出しを追加して、Web サービスをビルドする新しいターゲットを作成します。 jwsc
の srcdir
属性は、JWS ファイルを格納する最上位ディレクトリ (この例では helloWebService
) を指すようにします。jwsc
の destdir
属性は、wlcompile
に指定するのと同じ送り先ディレクトリを指すようにします。次の例を参照してください。
<target name="build.helloWebService">
<jwsc
srcdir="helloWebService"
destdir="destination_dir
"
keepGenerated="yes" >
<jws file="examples/splitdir/hello/HelloWorldImpl.java" />
</jwsc>
</target>
この例の destination_dir
は、他の分割開発ディレクトリ環境の Ant タスク (wlappc
や wlcompile
など) も使用する送り先ディレクトリを表します。
<!-- helloWorldEar アプリケーション全体をビルドする -->
<target name="build"
description="Compiles helloWorldEar application and runs appc"
depends="build-helloWebService,compile,appc" />
警告 : エンタープライズ アプリケーションを実際にビルドするときは、wlappc
Ant タスクを実行する前に、jwsc
Ant タスクを実行するようにしてください。wlappc
を正常に実行するには、jwsc
によって生成されるアーティファクトの一部が必要になるためです。この例の場合は、appc
ターゲットよりも前に build-helloWebService
ターゲットを指定する必要があります。
wlcompile
および wlappc
Ant タスクを使用してエンタープライズ アプリケーション全体をコンパイルおよび検証する場合は、両方の Ant タスクで Web サービスのソース ディレクトリを除外するようにしてください。これは、jwsc
Ant タスクで Web サービスのコンパイルとパッケージ化を既に扱っているからです。次に例を示します。
<target name="compile">
<wlcompile srcdir="${src.dir}" destdir="${dest.dir}"
excludes="appStartup,helloWebService">
...
</wlcomplile>
...
</target>
<target name="appc">
<wlappc source="${dest.dir}" deprecation="yes" debug="false"
excludes="helloWebService"/>
</target>
警告 : 通常、jwsc
Ant タスクは、Web サービスを実装する JWS ファイルから Web アプリケーション WAR ファイルを生成しますが、JWS ファイルで指定された JWS アノテーションによっては、EJB JAR ファイルを生成する場合もあります。その場合は、application.xml
ファイルに <ejb>
モジュール要素を追加する必要があります。jwsc
Ant タスクが EJB JAR ファイルを生成する場合の詳細については、「jwsc」を参照してください。
これで、分割開発ディレクトリ環境は、Web サービスの開発を含むように更新されました。エンタープライズ アプリケーション全体を再ビルドしてデプロイするときに、Web サービスも EAR の一部としてデプロイされます。Web サービスは、「Web サービスの WSDL の参照」で説明されている標準的な方法で呼び出します。
![]() ![]() |
![]() |
![]() |