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

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

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

8.1 Web サービスの 9.0 へのアップグレード

以下の節では、8.1 Web サービスをアップグレードして 9.0 Web サービス ランタイムで実行する方法について説明します。

 


アップグレードの概要

この節では、8.1 WebLogic Web サービスをアップグレードして、新しいバージョン 9.0 の Web サービス ランタイムを使用する方法について説明します。このランタイムは、Implementing Enterprise Web Services 1.1 仕様 (JSR-109 の 1.1 メンテナンス リリースである JSR-921) に準拠しています。9.0 のプログラミング モデルでは、Web Services Metadata for the Java Platform 仕様 (JSR-181) で指定されている標準の JDK 1.5 メタデータ アノテーションを使用しています。

注意 : 8.1 Web サービスのランタイムは 9.0 でもサポートされるため、8.1 WebLogic Web サービスは、変更しなくても WebLogic Server 9.0 上で引き続き実行できます。ただし、8.1 WebLogic Web サービスは非推奨になっており、今後のリリースの製品からは削除される予定です。この章の指示に従って、8.1 Web サービスを 9.0 にアップグレードすることを強くお勧めします。

8.1 Web サービスのアップグレードには、以下の高度なタスクが含まれます。以降の節の手順説明では、より詳しく説明します。

この節では、以下を前提としています。

この節では、以下の内容については説明していません。

 


8.1 Java クラス実装の WebLogic Web サービスの 9.0 へのアップグレード : 主な手順

次の手順では、8.1 Java クラス実装の WebLogic Web サービスをアップグレードして、9.0 WebLogic Web サービス ランタイムを使用する場合の基本的なガイドラインについて説明します。

  1. コマンド ウィンドウを開いて、9.0 ドメイン ディレクトリの bin サブディレクトリにある setDomainEnv.cmd (Windows) または setDomainEnv.sh (UNIX) スクリプトを実行して、9.0 WebLogic Server 環境を設定します。
  2. WebLogic Server ドメインのデフォルトの位置は、BEA_HOME/user_projects/domains/domainName です。BEA_HOME は BEA Products の最上位のインストール ディレクトリで、domainName はドメインの名前です。

  3. プロジェクト ディレクトリを作成します。
  4.    prompt> mkdir /myExamples/upgrade_pojo
  5. プロジェクト ディレクトリの下に、src ディレクトリと、古い 8.1 Java クラスに対応する新しい 9.0 JWS ファイル (この手順で後述) のパッケージ名に相当するサブディレクトリを作成します。
  6.    prompt> cd /myExamples/upgrade_pojo
    prompt> mkdir src/examples/webservices/upgrade_pojo
  7. 8.1 Web サービスを実装する古い Java クラスを、作業ディレクトリの src/examples/webservices/upgrade_pojo ディレクトリにコピーします。必要に応じてファイル名を変更してください。
  8. 次の手順に従って Java ファイルを編集します。新旧のサンプル Java ファイルについては、「8.1 Java ファイルと対応する 9.0 JWS ファイルの例」の個々の例を参照してください。
    1. 必要に応じて、新しい 9.0 ソース環境を反映するように Java ファイルのパッケージ名とクラス名を変更します。
    2. import 文を追加して、標準および WebLogic 固有の JWS アノテーションがインポートされるようにします。
    3. 少なくとも、次の JWS アノテーションを追加します。
    1. 9.0 Web サービスに引き継ぎぐ 8.1 Web サービスの機能によっては、JWS ファイルに他のアノテーションを追加しなければならない場合もあります。8.1 では、これらの機能の多くを servicegen の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表には、8.1 で servicegen の属性を使用して有効にした機能に対応する JWS アノテーションをまとめてあります (相当するアノテーションがある場合のみ)。
  9. 8.1 Web サービスのビルドに使用していた古い build.xml ファイルを 9.0 の作業ディレクトリにコピーします。
  10. Ant build.xml ファイルを更新して、servicegen の代わりに jwsc Ant タスクとその他のサポート タスクが実行されるようにします。
  11. Ant ビルド ファイルで build-service などの新しいターゲットを作成し、前の手順で作成した新しい JWS ファイルをコンパイルする jwsc Ant タスク呼び出しを追加することをお勧めします。このターゲットがいったん正常に機能すれば、古い servicegen Ant タスクは削除できます。

    次に示す手順は、build.xml ファイルを更新する際の主な手順です。詳細な手順については、「WebLogic Web サービスの反復的な開発」で説明する標準の反復開発プロセスを参照してください。

    次の各手順の例については、「8.1 と更新された 9.0 の Ant ビルド ファイルの例 (Java クラス実装の Web サービス)」を参照してください。

    1. jwsc taskdef を build.xml ファイルに追加します。
    2. build-service ターゲットを作成し、次の手順の説明に従って 9.0 Web サービスをビルドするのに必要なタスクを追加します。
    3. jwsc タスクをビルド ファイルに追加します。srdir 属性にソース ディレクトリ (この例では /myExamples/upgrade_pojo/src) を設定し、destdir 属性に前の手順で作成したエンタープライズ アプリケーションのルート ディレクトリを設定します。
    4. <jws> 子要素の file 属性に、前の手順で作成した新しい JWS ファイルの名前を指定します。

      9.0 Web サービスに引き継ぎぐ 8.1 Web サービスの機能によっては、jwsc タスクに追加の属性を指定しなければならない場合もあります。8.1 では、これらの機能の多くを servicegen の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表には、8.1 で servicegen の属性を使用して有効にした機能に対応する jwsc 属性があるかどうかについて説明しています。

  12. build-service Ant ターゲットを実行します。すべてのタスクを正しく完了すると、アップグレードされた 9.0 Web サービスがエンタープライズ アプリケーションに含まれます。

Web サービスのデプロイとテストの詳細については、「WebLogic Web サービスのデプロイとアンデプロイ」および「Web サービスの WSDL の参照」を参照してください。

以降の節に示すサンプル Java コードの場合、アップグレード後の 9.0 Web サービスの WSDL を呼び出すための URL は次のようになります。

http://host:port/upgradePOJO/HelloWorld?WSDL

8.1 Java ファイルと対応する 9.0 JWS ファイルの例

次のサンプル 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;
}
}

次に、9.0 Java クラス実装の Web サービスの JWS ファイルを示します。この例は、上に示した 8.1 の例に対応するもので、相違点が太字で示されています。一部の JWS アノテーションの値が、「8.1 と更新された 9.0 の Ant ビルド ファイルの例 (Java クラス実装の Web サービス)」に示す 8.1 servicegen Ant タスクの属性から取られている点に注意してください。

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;
/**
 * HelloWorld90 Web サービスを実装する単純な Java クラス。入力として
 * 整数と文字列を取り、これら 2 つのパラメータを含むメッセージ
 * を返す
 *
 * @author Copyright (c) 2005 by BEA Systems.All Rights Reserved.
 */
@WebService(name="HelloWorld90PortType", 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="HelloWorld90Port")
public class HelloWorld90Impl {
  /**
   * 整数と文字列の入力パラメータを含むテキスト メッセージ
   * を返す
   *
   */
  @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;
}
}

8.1 と更新された 9.0 の Ant ビルド ファイルの例 (Java クラス実装の Web サービス)

次の単純な 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 タスクを呼び出して 9.0 Web サービスをビルドする build.xml ファイルを示します。この例は、上に示した 8.1 の例に対応するもので、この節で説明したタスクが太字で示されています。この例では、9.0 Web サービスを実装する新しい JWS ファイルの名前が HelloWorld90Impl.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/HelloWorld90Impl.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 EJB 実装の WebLogic Web サービスの 9.0 へのアップグレード : 主な手順

次の手順では、8.1 EJB 実装の WebLogic Web サービスをアップグレードして、9.0 WebLogic Web サービス ランタイムを使用する場合の基本的なガイドラインについて説明します。

9.0 Web サービスのプログラミング モデルは、Web サービスの基底の実装を隠す点で 8.1 のモデルとはまったく異なります。Web サービスを Java クラスで実装するか EJB で指定するかを前もって指定するのではなく、どちらが最適な実装かを jwsc Ant タスクに判断させます。このため、8.1 Web サービスは明示的に EJB で実装されていましたが、次の手順では EJB クラスをインポートする方法や EJBGen を使用する方法は示されていません。代わりに、EJB 実装の 8.1 Web サービスに対応する標準の 9.0 JWS ファイルを作成する方法を示します。

  1. コマンド ウィンドウを開いて、9.0 ドメイン ディレクトリの bin サブディレクトリにある setDomainEnv.cmd (Windows) または setDomainEnv.sh (UNIX) スクリプトを実行して、9.0 WebLogic Server 環境を設定します。
  2. WebLogic Server ドメインのデフォルトの位置は、BEA_HOME/user_projects/domains/domainName です。BEA_HOME は BEA Products の最上位のインストール ディレクトリで、domainName はドメインの名前です。

  3. プロジェクト ディレクトリを作成します。
  4.    prompt> mkdir /myExamples/upgrade_ejb
  5. プロジェクト ディレクトリの下に、src ディレクトリと、古い 8.1 EJB 実装に対応する新しい 9.0 JWS ファイル (この手順で後述) のパッケージ名に相当するサブディレクトリを作成します。
  6.    prompt> cd /myExamples/upgrade_ejb
    prompt> mkdir src/examples/webservices/upgrade_ejb
  7. javax.ejb.SessionBean を実装していた 8.1 EJB Bean ファイルを、作業ディレクトリの src/examples/webservices/upgrade_ejb ディレクトリにコピーします。必要に応じてファイル名を変更してください。
  8. 注意 : 8.1 のホームおよびリモート EJB ファイルをコピーする必要はありません。

  9. 次の手順に従って EJB Bean ファイルを編集します。新旧のサンプル Java ファイルについては、「8.1 EJB ファイルと対応する 9.0 JWS ファイルの例」の個々の例を参照してください。
    1. 必要に応じて、新しい 9.0 ソース環境を反映するように Java ファイルのパッケージ名とクラス名を変更します。
    2. 必要に応じて、EJB クラス (javax.ejb.*) をインポートする import 文を削除します。これらのクラスは、アップグレード後の JWS ファイルでは必要ありません。
    3. import 文を追加して、標準および WebLogic 固有の JWS アノテーションがインポートされるようにします。
    4. JWS ファイルのクラス宣言から implements SessionBean コードを削除して、それ以降 javax.ejb.SessionBean が実装されないようにします。
    5. EJB 固有のメソッドをすべて削除します。
    1. 少なくとも、次の JWS アノテーションを追加します。
    1. 9.0 Web サービスに引き継ぎぐ 8.1 Web サービスの機能によっては、JWS ファイルに他のアノテーションを追加しなければならない場合もあります。8.1 では、これらの機能の多くを servicegen の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表には、8.1 で servicegen の属性を使用して有効にした機能に対応する JWS アノテーションをまとめてあります (相当するアノテーションがある場合のみ)。
  10. 8.1 Web サービスのビルドに使用していた古い build.xml ファイルを 9.0 の作業ディレクトリにコピーします。
  11. Ant build.xml ファイルを更新して、servicegen の代わりに jwsc Ant タスクとその他のサポート タスクが実行されるようにします。
  12. Ant ビルド ファイルで build-service などの新しいターゲットを作成し、前の手順で作成した新しい JWS ファイルをコンパイルする jwsc Ant タスク呼び出しを追加することをお勧めします。このターゲットがいったん正常に機能すれば、古い servicegen Ant タスクは削除できます。

    次に示す手順は、build.xml ファイルを更新する際の主な手順です。詳細な手順については、「WebLogic Web サービスの反復的な開発」で説明する標準の反復開発プロセスを参照してください。

    次の各手順の例については、「8.1 と更新された 9.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)」を参照してください。

    1. jwsc taskdef を build.xml ファイルに追加します。
    2. build-service ターゲットを作成し、次の手順の説明に従って 9.0 Web サービスをビルドするのに必要なタスクを追加します。
    3. jwsc タスクをビルド ファイルに追加します。srdir 属性にソース ディレクトリ (この例では /myExamples/upgrade_ejb/src) を設定し、destdir 属性に前の手順で作成したエンタープライズ アプリケーションのルート ディレクトリを設定します。
    4. <jws> 子要素の file 属性に、前の手順で作成した新しい JWS ファイルの名前を指定します。

      9.0 Web サービスに引き継ぎぐ 8.1 Web サービスの機能によっては、jwsc タスクに追加の属性を指定しなければならない場合もあります。8.1 では、これらの機能の多くを servicegen の属性を使用してコンフィグレーションしていました。「servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング」の表には、8.1 で servicegen の属性を使用して有効にした機能に対応する jwsc 属性があるかどうかについて説明しています。

  13. build-service Ant ターゲットを実行します。すべてのタスクを正しく完了すると、アップグレードされた 9.0 Web サービスがエンタープライズ アプリケーションに含まれます。

Web サービスのデプロイとテストの詳細については、「WebLogic Web サービスのデプロイとアンデプロイ」および「Web サービスの WSDL の参照」を参照してください。

以降の節に示すサンプル Java コードの場合、アップグレード後の 9.0 Web サービスの WSDL を呼び出すための URL は次のようになります。

http://host:port/upgradeEJB/HelloWorldService?WSDL

8.1 EJB ファイルと対応する 9.0 JWS ファイルの例

以降の 3 つの節に示す Bean、ホーム、およびリモートのクラスとインタフェースは、8.1 ステートレス セッション EJB (つまり 8.1 Web サービス) を実装していたものと仮定します。

これに対応する 9.0 JWS ファイルは、「対応する 9.0 JWS ファイル」に示されています。8.1 のクラスと 9.0 のクラスの相違点は太字で示してあります。一部の JWS アノテーションの値が、「8.1 と更新された 9.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)」に示す 8.1 servicegen Ant タスクの属性から取られている点に注意してください。

8.1 SessionBean クラス

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");
}
}

8.1 リモート インタフェース

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 returnValue
   * @exception 通信やシステムに障害が発生した場合に
   * 送出する RemoteException
   */
String sayHello(int num, String s)
throws RemoteException;
}

8.1 EJB ホーム インタフェース

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;
}

対応する 9.0 JWS ファイル

8.1 のファイルと 9.0 のファイルの相違点は太字で示してあります。一部の JWS アノテーションの値が、「8.1 と更新された 9.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)」に示す 8.1 servicegen Ant タスクの属性から取られている点に注意してください。

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="HelloWorld90PortType", 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="HelloWorld90Port")
/**
 * HelloWorld90Impl は、8.1 Web サービスを実装していた HelloWorld81 EJB
 * に対応する JWS。メソッドは、整数と文字列を取り、
 * 文字列を返す sayHello() の 1 つのみ。
 * <p>
 * @author Copyright (c) 2005 by BEA Systems.All Rights Reserved.
 */
public class HelloWorld90Impl {
  /** sayHello メソッドが Web サービスのパブリック オペレーション
   * になる
   */
  @WebMethod()
public String sayHello(int num, String s) {
    System.out.println("sayHello in the HelloWorld90 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;
  }
}

8.1 と更新された 9.0 の Ant ビルド ファイルの例 (8.1 EJB 実装の Web サービス)

次の単純な build.xml ファイルでは、8.1 で servicegen Ant タスクを使用して EJB 実装の WebLogic Web サービスをビルドする方法を示します。

<project name="ejb-webservice" default="all" basedir=".">
  <!-- set global properties for this build -->
<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 タスクを呼び出して 9.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/HelloWorld90Impl.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>

 


servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング

次の表に、8.1 servicegen Ant タスクの属性と、それに対応する 9.0 JWS アノテーションまたは jwsc 属性を示します。

左の列では、メインの servicegen Ant タスクの属性と、servicegen の 4 つの子要素 (<service><client><handlerChain>、および <security>) の属性が混在しています。

9.0 JWS アノテーションおよび jwsc Ant タスクの詳細については、「JWS アノテーション リファレンス」および「jwsc」を参照してください。

.

表 12-1 servicegen 属性と JWS アノテーションまたは jwsc 属性のマッピング

servicegen または servicegen の子要素の属性

対応する JWS アノテーションまたは jwsc 属性

contextURI

WebLogic 固有の @WLHttpTransport アノテーションの contextPath 属性。

destEAR

jwsc Ant タスクの destdir 属性。

keepGenerated

jwsc Ant タスクの keepGenerated 属性。

mergeWithExistingWS

対応する属性なし。

overwrite

対応する属性なし。

warName

jwsc Ant タスクの <jws> 子要素の name 属性。

ejbJAR

(service 子要素の属性)

直接的に対応する属性なし。jwsc Ant タスクは、コンパイルされた EJB または Java クラスからではなく、JWS ファイルから Web サービス アーティファクトを生成するため。

間接的に対応するのは、JWS ファイルの名前を指定する jwsc Ant タスクの <jws> 子要素の file 属性。

excludeEJBs

(service 子要素の属性)

対応する属性なし。

expandMethods

(service 子要素の属性)

対応する属性なし。

generateTypes

(service 子要素の属性)

対応する属性なし。

ignoreAuthHeader

(service 子要素の属性)

対応する属性なし。

includeEJBs

(service 子要素の属性)

対応する属性なし。

javaClassComponents

(service 子要素の属性)

直接的に対応する属性なし。jwsc Ant タスクは、コンパイルされた EJB または Java クラスからではなく、JWS ファイルから Web サービス アーティファクトを生成するため。

間接的に対応するのは、JWS ファイルの名前を指定する jwsc Ant タスクの <jws> 子要素の file 属性。

JMSAction

(service 子要素の属性)

対応する属性なし。JMS 実装の Web サービスは、9.0 リリースではサポートされないため。

JMSConnectionFactory

(service 子要素の属性)

対応する属性なし。JMS 実装の Web サービスは、9.0 リリースではサポートされないため。

JMSDestination

(service 子要素の属性)

対応する属性なし。JMS 実装の Web サービスは、9.0 リリースではサポートされないため。

JMSDestinationType

(service 子要素の属性)

対応する属性なし。JMS 実装の Web サービスは、9.0 リリースではサポートされないため。

JMSMessageType

(service 子要素の属性)

対応する属性なし。JMS 実装の Web サービスは、9.0 リリースではサポートされないため。

JMSOperationName

(service 子要素の属性)

対応する属性なし。JMS 実装の Web サービスは、9.0 リリースではサポートされないため。

protocol

(service 子要素の属性)

以下のいずれかの WebLogic 固有アノテーション。

  • @WLHttpTransport

  • @WLHttpsTransport

  • @WLJmsTransport

serviceName

(service 子要素の属性)

標準の @WebService アノテーションの serviceName 属性。

serviceURI

(service 子要素の属性)

WebLogic 固有の @WLHttpTransport@WLHttpsTranport、または @WLJmsTransport アノテーションの serviceUri 属性。

style

(service 子要素の属性)

標準の @SOAPBinding アノテーションの style 属性

typeMappingFile

(service 子要素の属性)

対応する属性なし。

targetNamespace

(service 子要素の属性)

標準の @WebService アノテーションの targetNamespace 属性。

userSOAP12

(service 子要素の属性)

対応する属性なし。

clientJarName

(client 子要素の属性)

対応する属性なし。

packageName

(client 子要素の属性)

直接的に対応する属性なし。

クライアントサイド Java コードおよびアーティファクトを生成するには、clientgen Ant タスクの packageName 属性を使用する。

saveWSDL

(client 子要素の属性)

対応する属性なし。

userServerTypes

(client 子要素の属性)

対応する属性なし。

handlers

(handlerChain 子要素の属性)

標準の @HandlerChain または @SOAPMessageHandlers アノテーション。

name

(handlerChain 子要素の属性)

標準の @HandlerChain または @SOAPMessageHandlers アノテーション。

duplicateElimination

(reliability 子要素の属性)

直接的に対応する属性なし。

Web サービスの信頼性のあるメッセージング ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

Web サービスの信頼性のあるメッセージングの使用」を参照。

persistDuration

(reliability 子要素の属性)

直接的に対応する属性なし。

Web サービスの信頼性のあるメッセージング ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

Web サービスの信頼性のあるメッセージングの使用」を参照。

enablePasswordAuth

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

encryptKeyName

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

encryptKeyPass

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

password

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

signKeyName

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

signKeyPass

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

username

(security 子要素の属性)

直接的に対応する属性なし。

メッセージレベルのセキュリティ ポリシーのアサーションを含む WS-Policy ファイルを指定するには、WebLogic 固有の @Policy 属性を使用する。

メッセージレベルのセキュリティ (デジタル署名と暗号化) のコンフィグレーション」を参照。

 

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