![]() ![]() ![]() ![]() |
以下の節では、10.0 より前のリリースの WebLogic Server Web サービスを、10.0 の Web サービスの実行時環境で動作するようにアップグレードする方法を説明します。
9.2 WebLogic Web サービスを 10.0 にアップグレードするために必要な作業はありません。変更を加えたり再コンパイルしたりすることなく、WebLogic Server 10.0 に再デプロイできます。
9.0 または 9.1 の Web サービスで以下のいずれかの機能を使用していた場合、WebLogic Server 10.0 に再デプロイする前に Web サービスを再コンパイルする必要があります。
再コンパイルするには、単に Web サービスを実装する JWS ファイルに対して jwsc
Ant タスクを再実行するだけでかまいません。
9.0 または 9.1 の Web サービスでこれらの機能を使用していなかった場合、変更や再コンパイルをせずに WebLogic Server 10.0 へ再デプロイできます。
この節では、8.1 WebLogic Web サービスをアップグレードして、新しいバージョン 10.0 の Web サービス実行時環境を使用するようにする方法を説明します。10.0 ランタイムは、Implementing Enterprise Web Services 1.1 仕様 (JSR-109 の 1.1 メンテナンス リリースである JSR-921) に準拠しています。10.0 のプログラミング モデルでは、Web Services Metadata for the Java Platform 仕様 (JSR-181) で指定されている標準の JDK 1.5 メタデータ アノテーションを使用しています。
注意 : | 8.1 WebLogic Web サービスのランタイムは 10.0 でもサポートされるため、8.1 の Web サービスは変更しなくても WebLogic Server 10.0 で引き続き実行できます。ただし、8.1 WebLogic Web サービスは非推奨になっており、今後のリリースの製品からは削除される予定です。このため、この章の指示に従って、8.1 Web サービスを 10.0 にアップグレードすることを強くお勧めします。 |
8.1 Web サービスのアップグレードには、以下の高度なタスクが含まれます。以降の節の手順説明では、より詳しく説明します。
バージョン 10.0 の WebLogic Web サービスは、JWS ファイルを使用して実装します。JWS ファイルは、JWS アノテーションを含む Java ファイルです。jwsc
Ant タスクは、JWS ファイルに明示的に javax.ejb.SessionBean
を実装しない限り、常に Web サービスをプレーン Java ファイルとして実装します。明示的に javax.ejb.SessionBean を実装するのは、一般的ではありません。このプログラミング モデルは、バックエンド コンポーネントの種類 (Java クラスか EJB か) の指定が必要だった 8.1 のモデルとは異なります。
servicegen
タスクではなく 10.0 の WebLogic Web サービス Ant タスク jwsc
を呼び出すように更新する。
8.1 Java クラス実装の Web サービスを、10.0 WebLogic Web サービス ランタイムを使用するようにアップグレードするには、次の手順に従います。
bin
サブディレクトリにある setDomainEnv.cmd
(Windows) または setDomainEnv.sh
(UNIX) スクリプトを実行して、WebLogic Server 10.0 環境を設定します。
WebLogic Server ドメインのデフォルトの場所は、BEA_HOME
/user_projects/domains/
domainName
です。BEA_HOME
は BEA Products の最上位のインストール ディレクトリ、domainName
はドメインの名前です。
prompt> mkdir /myExamples/upgrade_pojo
src
ディレクトリと、古い 8.1 Java クラスに対応する新しい 10.0 JWS ファイル (この手順で後述) のパッケージ名に相当するサブディレクトリを作成します。prompt> cd /myExamples/upgrade_pojo
prompt> mkdir src/examples/webservices/upgrade_pojo
src/examples/webservices/upgrade_pojo
ディレクトリにコピーします。必要に応じてファイル名を変更してください。@WebService
アノテーション (Java クラス レベルで追加)@SOAPBinding
アノテーション (クラス レベルで追加)@WLHttpTransport
アノテーション (クラス レベルで追加)@WebMethod
アノテーション (Web サービス オペレーションとして公開されるメソッドごとにメソッド レベルで追加)
Java ファイルでの JWS アノテーションの使用に関する概要については、「JWS ファイルのプログラミング」を参照してください。
servicegen
の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表に、8.1 で servicegen
の属性を使用して有効にしていた機能に対応する JWS アノテーションをまとめてあります (相当するアノテーションがある場合のみ)。build.xml
ファイルを 10.0 の作業ディレクトリにコピーします。 build.xml
ファイルを更新して、servicegen
の代わりに jwsc
Ant タスクとその他のサポート タスクが実行されるようにします。
Ant ビルド ファイルで build-service
などの新しいターゲットを作成し、前の手順で作成した新しい JWS ファイルをコンパイルする jwsc
Ant タスク呼び出しを追加することをお勧めします。このターゲットがいったん正常に機能すれば、古い servicegen
Ant タスクは削除できます。
次に示す手順は、build.xml
ファイルを更新する際の主な手順です。詳細な手順については、「WebLogic Web サービスの反復的な開発」で説明する標準の反復開発プロセスを参照してください。
次の各手順の例については、「8.1 と更新された 10.0 の Ant ビルド ファイルの例 (Java クラス実装の Web サービス)」を参照してください。
jwsc
taskdef を build.xml
ファイルに追加します。build-service
ターゲットを作成し、次の手順の説明に従って 10.0 Web サービスをビルドするのに必要なタスクを追加します。jwsc
タスクをビルド ファイルに追加します。srdir
属性にソース ディレクトリ (この例では /myExamples/upgrade_pojo/src
) を設定し、destdir
属性に前の手順で作成したエンタープライズ アプリケーションのルート ディレクトリを設定します。
<jws>
子要素の file
属性に、前の手順で作成した新しい JWS ファイルの名前を指定します。
10.0 Web サービスに引き継ぐ 8.1 Web サービスの機能によっては、jwsc
タスクに追加の属性を指定することが必要な場合もあります。8.1 では、これらの機能の多くを servicegen
の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表で、servicegen
の属性を使用して有効にしていた機能に相当する jwsc
属性があるかどうかについて説明しています。
build-service
Ant ターゲットを実行します。すべてのタスクを正しく完了すると、アップグレードされた 10.0 Web サービスがエンタープライズ アプリケーションに含まれます。
Web サービスのデプロイとテストの詳細については、「WebLogic Web サービスのデプロイとアンデプロイ」および「Web サービスの WSDL の参照」を参照してください。
以降の節に示すサンプル Java コードの場合、アップグレード後の 10.0 Web サービスの WSDL を呼び出すための URL は次のようになります。
http://host
:port
/upgradePOJO/HelloWorld?WSDL
次のサンプル Java クラスは、8.1 Web サービスを実装していたものと仮定します。
package examples.javaclass;
/**
* HelloWorld Web サービスを実装する単純な Java クラス。入力として
* 整数と文字列を取り、これら 2 つのパラメータを含むメッセージ
* を返す
*
* @author Copyright (c) 2005 by BEA Systems. All Rights Reserved.
*/
public final class HelloWorld81 {
/**
* 整数と文字列の入力パラメータを含むテキスト メッセージ
* を返す
*
*/
public String sayHello(int num, String s) {
System.out.println("sayHello operation has been invoked with arguments " + s + " and " + num);
String returnValue = "This message brought to you by the letter "+s+" and the number "+num;
return returnValue;
}
}
次に、10.0 Java クラス実装の Web サービスの JWS ファイルを示します。この例は、上に示した 8.1 の例に対応するもので、相違点が太字で示されています。一部の JWS アノテーションの値が、「8.1 と更新された 10.0 の Ant ビルド ファイルの例 (Java クラス実装の Web サービス)」に示す 8.1 servicegen
Ant タスクの属性から取得されている点に注意します。
警告 : | 次の JWS ファイルでは WebLogic 固有の JWS アノテーションが使用されているため、生成される Web サービスは、JAX-WS 2.0 ではなく JAX-RPC 1.1 に基づくものとなります。 |
package examples.webservices.upgrade_pojo;
// 標準の JWS アノテーションをインポートする
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
// WebLogic JWS アノテーションをインポートする
import weblogic.jws.WLHttpTransport;
/**
* HelloWorld92 Web サービスを実装する単純な Java クラス。入力として
* 整数と文字列を取り、これら 2 つのパラメータを含むメッセージ
* を返す
*
* @author Copyright (c) 2005 by BEA Systems. All Rights Reserved.
*/
@WebService(name="HelloWorld92PortType", serviceName="HelloWorld",
targetNamespace="http://example.org")
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
@WLHttpTransport(contextPath="upgradePOJO", serviceUri="HelloWorld",
portName="HelloWorld92Port")
public class HelloWorld92Impl {
/**
* 整数と文字列の入力パラメータを含むテキスト メッセージ
* を返す
*
*/
@WebMethod()
public String sayHello(int num, String s) {
System.out.println("sayHello operation has been invoked with arguments " + s + " and " + num);
String returnValue = "This message brought to you by the letter "+s+" and the number "+num;
return returnValue;
}
}
次の単純な build.xml
ファイルでは、8.1 で servicegen
Ant タスクを使用して WebLogic Web サービスをビルドする方法を示します。この例では、8.1 Web サービスを実装する Java ファイルが、すでに examples.javaclass.HelloWorld81 クラスにコンパイルされています。
<project name="javaclass-webservice" default="all" basedir=".">
<!-- このビルドのグローバルなプロパティを設定 -->
<property name="source" value="."/>
<property name="build" value="${source}/build"/>
<property name="war_file" value="HelloWorldWS.war" />
<property name="ear_file" value="HelloWorldApp.ear" />
<property name="namespace" value="http://examples.org" />
<target name="all" depends="clean, ear"/>
<target name="clean">
<delete dir="${build}"/>
</target>
<!-- Web サービスをビルドする古い 8.1 servicegen 呼び出しの例 -->
<target name="ear">
<servicegen
destEar="${build}/${ear_file}"
warName="${war_file}">
<service
javaClassComponents="examples.javaclass.HelloWorld81"
targetNamespace="${namespace}"
serviceName="HelloWorld"
serviceURI="/HelloWorld"
generateTypes="True"
expandMethods="True">
</service>
</servicegen>
</target>
</project>
次に、jwsc
Ant タスクを呼び出して 10.0 Web サービスをビルドする build.xml
ファイルを示します。これは上に示した 8.1 の例に対応するもので、この節で説明したタスクが太字で示されています。この例では、10.0 Web サービスを実装する新しい JWS ファイルの名前が HelloWorld92Impl.java
とされています。
<project name="webservices-upgrade_pojo" default="all">
<!-- このビルドのグローバルなプロパティを設定 -->
<property name="wls.username" value="weblogic" />
<property name="wls.password" value="weblogic" />
<property name="wls.hostname" value="localhost" />
<property name="wls.port" value="7001" />
<property name="wls.server.name" value="myserver" />
<property name="ear.deployed.name" value="upgradePOJOEar" />
<property name="example-output" value="output" />
<property name="ear-dir" value="${example-output}/upgradePOJOEar" />
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<taskdef name="wldeploy"
classname="weblogic.ant.taskdefs.management.WLDeploy"/>
<target name="all" depends="clean,build-service,deploy" />
<target name="clean" depends="undeploy">
<delete dir="${example-output}"/>
</target>
<target name="build-service">
<jwsc
srcdir="src"
destdir="${ear-dir}">
<jws file="examples/webservices/upgrade_pojo/HelloWorld92Impl.java" />
</jwsc>
</target>
<target name="deploy">
<wldeploy action="deploy" name="${ear.deployed.name}"
source="${ear-dir}" user="${wls.username}"
password="${wls.password}" verbose="true"
adminurl="t3://${wls.hostname}:${wls.port}"
targets="${wls.server.name}" />
</target>
<target name="undeploy">
<wldeploy action="undeploy" name="${ear.deployed.name}"
failonerror="false"
user="${wls.username}" password="${wls.password}" verbose="true"
adminurl="t3://${wls.hostname}:${wls.port}"
targets="${wls.server.name}" />
</target>
</project>
次の手順では、10.0 WebLogic Web サービス ランタイムを使用するように 8.1 EJB 実装の Web サービスをアップグレードする方法について説明します。
10.0 Web サービスのプログラミング モデルは、Web サービスの基底の実装を隠す点で 8.1 のモデルとはまったく異なります。Web サービスを Java クラスで実装するか EJB で実装するかを前もって指定するのではなく、JWS ファイルに明示的に javax.ejb.SessionBean
を実装しない限り (一般的には実装しない)、jwsc
Ant タスクで常にプレーン Java クラス実装が選択されます。このため、8.1 Web サービスは明示的に EJB で実装されていましたが、次の手順では EJB クラスをインポートする方法や EJBGen を使用する方法は示されていません。代わりに、EJB 実装の 8.1 Web サービスに対応する標準の 10.0 JWS ファイルを作成する方法を示します。
bin
サブディレクトリにある setDomainEnv.cmd
(Windows) または setDomainEnv.sh
(UNIX) スクリプトを実行して、WebLogic Server 10.0 の環境を設定します。
WebLogic Server ドメインのデフォルトの場所は、BEA_HOME
/user_projects/domains/
domainName
です。BEA_HOME
は BEA Products の最上位のインストール ディレクトリ、domainName
はドメインの名前です。
prompt> mkdir /myExamples/upgrade_ejb
src
ディレクトリと、8.1 EJB 実装に対応する新しい 10.0 JWS ファイル (この手順で後述) のパッケージ名に相当するサブディレクトリを作成します。prompt> cd /myExamples/upgrade_ejb
prompt> mkdir src/examples/webservices/upgrade_ejb
javax.ejb.SessionBean
を実装していた 8.1 EJB Bean ファイルを、作業ディレクトリの src/examples/webservices/upgrade_ejb
ディレクトリにコピーします。必要に応じてファイル名を変更してください。注意 : | 8.1 のホームおよびリモート EJB ファイルをコピーする必要はありません。 |
javax.ejb.*
) をインポートする import
文を削除します。これらのクラスは、アップグレード後の JWS ファイルでは必要ありません。import
文を追加して、標準および WebLogic 固有の JWS アノテーションがインポートされるようにします。implements SessionBean
コードを削除して、それ以降 javax.ejb.SessionBean
が実装されないようにします。@WebService
アノテーション (Java クラス レベルで追加)@SOAPBinding
アノテーション (クラス レベルで追加)@WLHttpTransport
アノテーション (クラス レベルで追加)@WebMethod
アノテーション (Web サービス オペレーションとして公開されるメソッドごとにメソッド レベルで追加)
Java ファイルでの JWS アノテーションの使用に関する概要については、「JWS ファイルのプログラミング」を参照してください。
servicegen
の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表に、8.1 で servicegen
の属性を使用して有効にしていた機能に対応する JWS アノテーションをまとめてあります (相当するアノテーションがある場合のみ)。build.xml
ファイルを 10.0 の作業ディレクトリにコピーします。 build.xml
ファイルを更新して、servicegen
の代わりに jwsc
Ant タスクとその他のサポート タスクが実行されるようにします。
Ant ビルド ファイルで build-service
などの新しいターゲットを作成し、前の手順で作成した新しい JWS ファイルをコンパイルする jwsc
Ant タスク呼び出しを追加することをお勧めします。このターゲットがいったん正常に機能すれば、古い servicegen
Ant タスクは削除できます。
次に示す手順は、build.xml
ファイルを更新する際の主な手順です。詳細な手順については、「WebLogic Web サービスの反復的な開発」で説明する標準の反復開発プロセスを参照してください。
次の各手順の例については、「8.1 と更新された 10.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)」を参照してください。
jwsc
taskdef を build.xml
ファイルに追加します。build-service
ターゲットを作成し、次の手順の説明に従って 10.0 Web サービスをビルドするのに必要なタスクを追加します。jwsc
タスクをビルド ファイルに追加します。srdir
属性にソース ディレクトリ (この例では /myExamples/upgrade_ejb/src
) を設定し、destdir
属性に前の手順で作成したエンタープライズ アプリケーションのルート ディレクトリを設定します。
<jws>
子要素の file
属性に、前の手順で作成した新しい JWS ファイルの名前を指定します。
10.0 Web サービスに引き継ぐ 8.1 Web サービスの機能によっては、jwsc
タスクに追加の属性を指定することが必要な場合もあります。8.1 では、これらの機能の多くを servicegen
の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表に、servicegen
の属性を使用して有効にしていた機能に対応する jwsc
属性があるかどうかを示しています。
build-service
Ant ターゲットを実行します。すべてのタスクを正しく完了すると、アップグレードされた 10.0 Web サービスがエンタープライズ アプリケーションに含まれます。
Web サービスのデプロイとテストの詳細については、「WebLogic Web サービスのデプロイとアンデプロイ」および「Web サービスの WSDL の参照」を参照してください。
以降の節に示すサンプル Java コードの場合、アップグレード後の 10.0 Web サービスの WSDL を呼び出すための URL は次のようになります。
http://host
:port
/upgradeEJB/HelloWorldService?WSDL
以降の 3 つの節に示す Bean、ホーム、およびリモートのクラスとインタフェースは、8.1 ステートレス セッション EJB (つまり 8.1 Web サービス) を実装していたものと仮定します。
これに対応する 10.0 JWS ファイルは、「相当する 10.0 JWS ファイル」に示されています。8.1 のクラスと 10.0 のクラスの相違点は太字で示してあります。一部の JWS アノテーションの値が、「8.1 と更新された 10.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)」に示す 8.1 servicegen
Ant タスクの属性から取得されている点に注意します。
package examples.statelessSession;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
* HelloWorldBean はステートレス セッション EJB。メソッドは、
* 整数と文字列を取り、文字列を返す sayHello() の 1 つのみ
* <p>
* sayHello() メソッドは、この EJB に基づく Web サービスのパブリック
* オペレーション
*
* @author Copyright (c) 2005 by BEA Systems. All Rights Reserved.
*/
public class HelloWorldBean81 implements SessionBean {
private static final boolean VERBOSE = true;
private SessionContext ctx;
// WebLogic のログ サービスの使用も検討すること
private void log(String s) {
if (VERBOSE) System.out.println(s);
}
/**
* 単一の EJB ビジネス メソッド
*/
public String sayHello(int num, String s) {
System.out.println("sayHello in the HelloWorld EJB has "+
"been invoked with arguments " + s + " and " + num);
String returnValue = "This message brought to you by the "+
"letter "+s+" and the number "+num;
return returnValue;
}
/**
* このメソッドは EJB 仕様では必須だが、
* このサンプルでは使用されない
*
*/
public void ejbActivate() {
log("ejbActivate called");
}
/**
* このメソッドは EJB 仕様では必須だが、
* このサンプルでは使用されない
*
*/
public void ejbRemove() {
log("ejbRemove called");
}
/**
* このメソッドは EJB 仕様では必須だが、
* このサンプルでは使用されない
*
*/
public void ejbPassivate() {
log("ejbPassivate called");
}
/**
* セッション コンテキストを設定
*
* @param ctx SessionContext セッションのコンテキスト
*/
public void setSessionContext(SessionContext ctx) {
log("setSessionContext called");
this.ctx = ctx;
}
/**
* このメソッドは EJB 仕様では必須だが、
* このサンプルでは使用されない
*
*/
public void ejbCreate () throws CreateException {
log("ejbCreate called");
}
}
package examples.statelessSession;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
/**
* このインタフェース内のメソッドは HelloWorld のパブリック インタフェース
* これらのメソッドのシグネチャは EJBean のシグネチャと同じだが、
* java.rmi.RemoteException を送出する点で異なる
*
* @author Copyright (c) 2005 by BEA Systems. All Rights Reserved.
*/
public interface HelloWorld81 extends EJBObject {
/**
* 単に EJB から挨拶を返す
*
* @param num int 返す回数
* @param s String 返す文字列
* @return String 戻り値
* @exception RemoteException 通信やシステムに障害が発生した場合に
* 送出する例外
*/
String sayHello(int num, String s)
throws RemoteException;
}
package examples.statelessSession;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
/**
* HelloWorld ステートレス セッション EJB のホーム インタフェース
*
* @author Copyright (c) 2005 by BEA Systems. All Rights Reserved.
*/
public interface HelloWorldHome81 extends EJBHome {
/**
* このメソッドは、HelloWorldBean81.java ファイルの ejbCreate
* メソッドに対応する
*/
HelloWorld81 create()
throws CreateException, RemoteException;
}
8.1 のファイルと 10.0 のファイルの相違点は太字で示してあります。一部の JWS アノテーションの値は、「8.1 と更新された 10.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)」に示す 8.1 servicegen
Ant タスクの属性から取得されています。
警告 : | 次の JWS ファイルでは WebLogic 固有の JWS アノテーションが使用されているため、生成される Web サービスは、JAX-WS 2.0 ではなく JAX-RPC 1.1 に基づくものとなります。 |
package examples.webservices.upgrade_ejb;
// 標準の JWS アノテーションをインポートする
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
// WebLogic 固有のアノテーションをインポートする
import weblogic.jws.WLHttpTransport;
// クラスレベルのアノテーション
@WebService(name="HelloWorld92PortType", serviceName="HelloWorldService",
targetNamespace="http://example.org")
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,
use=SOAPBinding.Use.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
@WLHttpTransport(contextPath="upgradeEJB", serviceUri="HelloWorldService",
portName="HelloWorld92Port")
/**
* HelloWorld92Impl は、8.1 Web サービスを実装していた HelloWorld81 EJB
* に相当する JWS。メソッドは、整数と文字列を取り、
* 文字列を返す sayHello() の 1 つのみ
* <p>
* @author Copyright (c) 2005 by BEA Systems. All Rights Reserved.
*/
public class HelloWorld92Impl {
/** sayHello メソッドが Web サービスのパブリック オペレーション
* になる
*/
@WebMethod()
public String sayHello(int num, String s) {
System.out.println("sayHello in the HelloWorld92 Web Service has "+
"been invoked with arguments " + s + " and " + num);
String returnValue = "This message brought to you by the "+
"letter "+s+" and the number "+num;
return returnValue;
}
}
次の単純な build.xml
ファイルでは、8.1 で servicegen
Ant タスクを使用して EJB 実装の WebLogic Web サービスをビルドする方法を示します。このサンプルの後に、10.0 Web サービスをビルドするための jwsc
Ant タスクを呼び出す場合の、対応する build.xml
ファイルを示します。
<project name="ejb-webservice" default="all" basedir=".">
<!-- このビルドのグローバル プロパティを設定 -->
<property name="source" value="."/>
<property name="build" value="${source}/build"/>
<property name="ejb_file" value="HelloWorldWS.jar" />
<property name="war_file" value="HelloWorldWS.war" />
<property name="ear_file" value="HelloWorldApp.ear" />
<property name="namespace" value="http://examples.org" />
<target name="all" depends="clean,ear"/>
<target name="clean">
<delete dir="${build}"/>
</target>
<!-- Web サービスをビルドする古い 8.1 servicegen 呼び出しの例 -->
<target name="ejb">
<delete dir="${build}" />
<mkdir dir="${build}"/>
<mkdir dir="${build}/META-INF"/>
<copy todir="${build}/META-INF">
<fileset dir="${source}">
<include name="ejb-jar.xml"/>
</fileset>
</copy>
<javac srcdir="${source}" includes="HelloWorld*.java"
destdir="${build}" />
<jar jarfile="${ejb_file}" basedir="${build}" />
<wlappc source="${ejb_file}" />
</target>
<target name="ear" depends="ejb">
<servicegen
destEar="${build}/${ear_file}"
warName="${war_file}">
<service
ejbJar="${ejb_file}"
targetNamespace="${namespace}"
serviceName="HelloWorldService"
serviceURI="/HelloWorldService"
generateTypes="True"
expandMethods="True">
</service>
</servicegen>
</target>
</project>
次に、jwsc
Ant タスクを呼び出して 10.0 Web サービスをビルドする build.xml
ファイルを示します。これは上に示した 8.1 の例に対応するもので、この節で説明したタスクが太字で示されています。
<project name="webservices-upgrade_ejb" default="all">
<!-- このビルドのグローバルなプロパティを設定 -->
<property name="wls.username" value="weblogic" />
<property name="wls.password" value="weblogic" />
<property name="wls.hostname" value="localhost" />
<property name="wls.port" value="7001" />
<property name="wls.server.name" value="myserver" />
<property name="ear.deployed.name" value="upgradeEJB" />
<property name="example-output" value="output" />
<property name="ear-dir" value="${example-output}/upgradeEJB" />
<taskdef name="jwsc"
classname="weblogic.wsee.tools.anttasks.JwscTask" />
<taskdef name="wldeploy"
classname="weblogic.ant.taskdefs.management.WLDeploy"/>
<target name="all" depends="clean,build-service,deploy" />
<target name="clean" depends="undeploy">
<delete dir="${example-output}"/>
</target>
<target name="build-service">
<jwsc
srcdir="src"
destdir="${ear-dir}">
<jws file="examples/webservices/upgrade_ejb/HelloWorld92Impl.java" />
</jwsc>
</target>
<target name="deploy">
<wldeploy action="deploy" name="${ear.deployed.name}"
source="${ear-dir}" user="${wls.username}"
password="${wls.password}" verbose="true"
adminurl="t3://${wls.hostname}:${wls.port}"
targets="${wls.server.name}" />
</target>
<target name="undeploy">
<wldeploy action="undeploy" name="${ear.deployed.name}"
failonerror="false"
user="${wls.username}" password="${wls.password}" verbose="true"
adminurl="t3://${wls.hostname}:${wls.port}"
targets="${wls.server.name}" />
</target>
</project>
次の表に、8.1 servicegen
Ant タスクの属性と、それに対応する 10.0 JWS アノテーションまたは jwsc
属性を示します。
最初のカラムには、メインの servicegen
Ant タスクの属性と、servicegen
の 4 つの子要素 (<service>
、<client>
、<handlerChain>
、および <security>
) の属性が混在しています。
10.0 JWS アノテーションおよび jwsc
Ant タスクの詳細については、「JWS アノテーション リファレンス」および「jwsc」を参照してください。
![]() ![]() ![]() |