ヘッダーをスキップ
Oracle Application Server WebLogicからの移行
10gリリース3(10.1.3.1.0)
B31844-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 Javaサーブレットの移行

この章では、JavaサーブレットをWebLogic ServerからOracle Application Serverに移行する場合に必要な情報について説明します。具体的には、単純なサーブレット、WARファイルおよび展開Webアプリケーションの移行について説明します。

ここで説明する内容は次のとおりです。

3.1 概要

WebLogic ServerからOracle Application ServerへのJavaサーブレットの移行は簡単であり、移行するサーブレットのコードを変更する必要はほとんどありません。まったくない場合もあります。

Oracle Application Server 10g リリース3(10.1.3.1.0)は、Sun社のJ2EEサーブレット仕様バージョン2.4に完全に準拠しています。WebLogic Server 8.1は、バージョン2.3と互換性があります。 ただし、Oracle Application Server 10g リリース3(10.1.3.1.0)は、サーブレット2.3と下位互換性があります。したがって、バージョン2.3標準仕様に準拠して記述されたサーブレットは、Oracle Application Serverで正常に動作し、最小限の作業で移行できます。

新しい環境へのサーブレットの移行時に行う主なタスクは、構成およびデプロイです。htmlKonaなどの独自の拡張機能を使用している場合は、追加のタスクを行う必要があり、移行作業が複雑になります。

サーブレットの移行時に行うタスクは、サーブレットがパッケージされている方法およびデプロイされている方法によっても異なります。サーブレットは、単純なサーブレット、他のリソースとともに標準のディレクトリ構造にパッケージされたWebアプリケーション、またはWebアーカイブ(WAR)・ファイルのいずれかとしてデプロイできます。

3.2 サーブレットの移行方法

OC4Jにサーブレットを移行するには、次の簡単な手順を実行します。

  1. 構成: サーブレット用のOracle Application Serverデプロイメント・ディスクリプタを作成または変更します。

  2. パッケージ化:

    • 単純なサーブレットは、個別にデプロイできます(3.3を参照)。

    • サーブレットは、Webアプリケーションの一部としてWARファイルにパッケージできます(3.4を参照)。

  3. デプロイ: WARファイル内のサーブレットは、Application Server Controlコンソールを使用してデプロイできます。個別のサーブレットおよび展開Webアプリケーション内のサーブレットは、適切なディレクトリにコピーすることで自動的にデプロイできます。


注意:

Oracle JDeveloperでは、前述のすべての作業を自動化する様々なツールおよびウィザードが提供されています。

サーブレット移行時の問題

サーブレットの移行時に、次の問題が発生する可能性があります。

3.3 単純なサーブレットの移行

単純なサーブレットは、簡単にOC4Jに構成およびデプロイできます。サーブレットをデプロイするための手動プロセスは、WebLogic ServerとOC4Jで同一です。


注意:

サーブレットをデプロイする場合に推奨および優先される方法として、サーブレットをWARファイルまたはEARファイルにパッケージし、Oracle Enterprise Manager 10g Application Server Controlコンソールまたはdcmctlコマンドライン・ユーティリティを使用する方法があります。 この章で説明する手動プロセス(XMLファイルを編集し、コマンドラインでjavaコマンドを使用してOC4Jを起動するプロセス)は、開発環境で使用することをお薦めします。

サーブレットは、Webアプリケーションの一部として登録および構成しておく必要があります。サーブレットを登録および構成するには、Webアプリケーション・デプロイメント・ディスクリプタにいくつかのエントリを追加する必要があります。

単純なサーブレットをデプロイする手順の概要は、次のとおりです(詳細な手順については、表3-1を参照してください)。

  1. サーブレットへのリクエストを解決するために使用するサーブレット・クラスの名前およびURLパターンで、Webアプリケーション・デプロイメント・ディスクリプタweb.xml)を更新します。

  2. サーブレット・クラス・ファイルをWEB-INF/classes/ディレクトリにコピーします。サーブレット・クラス・ファイルにpackage文が含まれている場合は、package文の各レベルに応じた追加のサブディレクトリを作成します。その後、サーブレット・クラス・ファイルを、そのパッケージ用に作成した最下位のサブディレクトリに配置します。

  3. サーブレットで必要なその他のサポート・ファイルを、Oracle Application Serverインストール環境の適切なディレクトリにコピーします。

  4. URLを入力して、ブラウザからサーブレットを起動します。

サーブレットの移行時に行う作業を確認するために、WebLogic Serverに付属のサンプル・サーブレットを選択して移行しました。選択したサンプルは、独自の拡張機能が使用されていないものです。

表3-1に、単純なサーブレット(HelloWorld)をWebLogic ServerからOracle Application Server OC4Jに移行する手動プロセスを示します。

表3-1 単純なサーブレットの移行

手順 説明 プロセス

1

Webアプリケーション・デプロイメント・ディスクリプタを変更します。

後述のディスクリプタ情報を、web.xmlファイルに追加します。web.xmlファイルは、Oracle Application Serverインストール環境の次のディレクトリにあります。

UNIXの場合、web.xmlは次の場所にあります。

<ORACLE_HOME>/j2ee/home/default-web-app/WEB-INF/

Windowsの場合、web.xmlは次の場所にあります。

<ORACLE_HOME>\j2ee\home\default-web-app\WEB-INF\

入力するディスクリプタ情報は次のとおりです。

<servlet>
  <servlet-name>
   HelloWorldServlet
  </servlet-name>
  <servlet-class>
   examples.servlets.HelloWorldServlet
  </servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>
   HelloWorldServlet
  </servlet-name>
  <url-pattern>
   /HelloWorldMigrate/*
  </url-pattern>
</servlet-mapping>

2

サーブレット・クラス・ファイルを適切なディレクトリにコピーします。

WebLogic Serverに付属のサンプルを正常に構築および実行した後、HelloWorldServlet.classをWebLogic Serverインストール環境の次のディレクトリからOracle Application Serverの適切なディレクトリにコピーします。

UNIXでのコピー元:

<BEA_HOME>/weblogic81/samples/server/examples/build/ examplesWebApp/WEB-INF/classes/examples/servlets/

コピー先:

<ORACLE_HOME>/j2ee/home/default-web-app/WEB-INF/ classes/examples/servlets/

Windowsでのコピー元:

<BEA_HOME>\weblogic81\samples\server\examples\build\ examplesWebApp\WEB-INF\classes\examples\servlets\

コピー先:

<ORACLE_HOME>\j2ee\home\default-web-app\WEB-INF\ classes\examples\servlets\

注意: WebLogic Serverインストール環境に付属のこのサーブレットは、examples.servletsというパッケージに含まれています。クラス・ファイルをOracle Application Serverにコピーする場合は、対応するパッケージ・サブディレクトリ(examples/servlets/)を作成する必要があります。

3

サーブレットで必要なサポート・ユーティリティ・クラス・ファイルを抽出およびコピーします。

HelloWorldServlet.classでは、WebLogic Serverインストール環境のJARファイルutils_common.jarに含まれているユーティリティ・クラスExampleUtils.classがインポートされます。Oracle Application Serverインストール環境にこのユーティリティ・クラスをコピーする必要があります。

ExampleUtils.classは次の場所にあります。

UNIXの場合:

<BEA_HOME>/weblogic81/samples/server/examples/build/ examplesWebApp/WEB-INF/lib/utils_common.jar

Windowsの場合:

<BEA_HOME>\weblogic81\samples\server\examples\build\ examplesWebApp\WEB-INF\lib\utils_common.jar

ExampleUtils.classを次の場所に抽出します。

UNIXの場合:

<ORACLE_HOME>/j2ee/home/default-web-app/WEB-INF/classes/

Windowsの場合:

<ORACLE_HOME>\j2ee\home\default-web-app\WEB-INF\classes\

注意: 抽出を行うことによってexamples/utils/commonディレクトリが作成されます。

4

OC4Jホーム・インスタンスhomeを再起動します(現在実行されていない場合)。

Oracle Enterprise Manager 10g Application Server Controlコンソールの管理Webページまたは次のopmnctlコマンド(ローカルで実行)を使用します。

opmnctl @instance restartproc ias-component=OC4J

5

Webブラウザからサーブレットを実行します。

次のURLを使用して、Webブラウザからサーブレットにアクセスします。

http://localhost:7777/j2ee/HelloWorldMigrate

(別のマシンのブラウザを使用する場合は、localhostの部分をOC4Jインスタンスのホスト名に置き換えます。)



関連項目:

サーブレットの構成およびデプロイの詳細は、『Oracle Containers for J2EEサーブレット開発者ガイド』を参照してください。

3.4 WARファイルの移行

Webアプリケーションは、WARファイルとして構成およびデプロイできます。OC4Jでは、Application Server Controlコンソールの管理GUIを使用するか、またはWARファイルを適切なディレクトリに手動でコピーすることによって、この作業を簡単に実行できます。これは、WebLogic Serverでも同様です。ここでは、Application Server Controlコンソールを使用して、サンプルWARファイルをWebLogic Serverからデプロイする手順について説明します。


注意:

WARファイルを適切なディレクトリに手動でコピーしてデプロイする方法は、OC4Jを(Oracle Application Serverインスタンスのコンポーネントとしてではなく)スタンドアロン・モードで使用する開発環境でのみ使用してください。

通常、本番用Webアプリケーションは、Application Server Controlコンソールまたはユーティリティを介して、WARファイルまたはEARファイルを使用してデプロイします。Webアプリケーションの開発時に、展開ディレクトリ形式(3.5を参照)を使用すると、編集したコードのデプロイおよびテストを短時間で実行できます。

表3-2に、WARファイルをWebLogic ServerからOC4Jに移行する一般的なプロセスを示します。

表3-2 WARファイルの移行

手順 説明 プロセス

1

サンプル・アプリケーションのWARファイルを作成します。

製品に付属のWebLogic Serverサンプルの一部を実行していない場合は、WebLogic Serverの次のディレクトリにあるCookieサンプルWebアプリケーションを構築します(UNIXの例を示しますが、Windowsのディレクトリ構造も同様です)。

<BEA_HOME>/weblogic81/samples/server/examples/src/ examples/webapp/cookie

このディレクトリで、<BEA_HOME>/ant/weblogic81/server/bin/antと入力して、アプリケーションを構築します。

構築を完了すると、このアプリケーションのWARファイルcookie.warが次のディレクトリに作成されます。

<BEA_HOME>/weblogic81/samples/domains/examples/ applications/

2

サンプル・アプリケーションをOracle Application Serverにデプロイします。

  1. cookie.warファイルが存在するマシンで、ブラウザを起動し、Oracle Application Serverインストール環境のApplication Server ControlコンソールのURLに移動します。次に例を示します。

    http://<hostname>:7777/em
    

    <hostname>は、Oracle Application Serverがインストールされているホストの修飾名です。

  2. 管理者ユーザー名(oc4jadmin)およびパスワードの入力を求められた場合は入力します。

  3. WARファイルのデプロイ先のOracle Application Serverインスタンスの+アイコンをクリックします。

  4. home OC4Jコンポーネントをクリックします。home OC4Jコンポーネントの設定ページが表示されます。

  5. 「アプリケーション」をクリックし、次に「デプロイ」ボタンをクリックします。「デプロイ: アーカイブの選択」ページが表示されます。

  6. 「アーカイブはローカル・ホストに存在します。」を選択します。「参照」ボタンをクリックし、cookie.warファイルの場所を入力します。デプロイ計画に対しては、選択内容を変更せずにデプロイ計画を自動作成します。「次へ」をクリックします。「デプロイ: アプリケーション属性」ページが表示されます。

  7. 「アプリケーション名」テキスト・ボックスにcookie、「コンテキスト・ルート」テキスト・ボックスに/cookieと入力します。「次へ」をクリックします。「デプロイ: デプロイ設定」ページが表示されます。

  8. 「デプロイ」をクリックします。デプロイの進行状況を示すページが表示されます。デプロイが正常に実行されると、成功メッセージが表示されます。エラーが発生した場合は、進行状況メッセージを確認し、ログに記録されている問題に対してトラブルシューティングを行います。

  9. 「戻る」をクリックします。homeの設定ページが表示されます。デプロイ済アプリケーションのリストにCookieアプリケーションが表示されます。

3

デプロイしたアプリケーションをテストします。

ブラウザで、次のURLを入力します。

http://<hostname>:7777/cookie

<hostname>は、cookie WARファイルをデプロイしたOracle Application Serverホストです。



関連項目:

WARファイルおよびEARファイルのデプロイ方法の詳細は、『Oracle Containers for J2EEサーブレット開発者ガイド』および『Oracle Application Server Containers for J2EEユーザーズ・ガイド』を参照してください。

3.5 展開Webアプリケーションの移行

Webアプリケーションは、標準ディレクトリ構造(展開ディレクトリ形式)で格納されたファイルのコレクションとして構成およびデプロイすることもできます。OC4Jでこれを行うには、標準ディレクトリ構造の内容をOC4Jインストール環境の適切なディレクトリに手動でコピーします。WebLogic Serverでも同じ方法を使用できます。この項では、展開Webアプリケーションをデプロイする手動プロセスについて説明します。


関連項目:

Application Server ControlコンソールのGUIを使用する方法の詳細は、『Oracle Application Server管理者ガイド』を参照してください。

展開ディレクトリ形式でのWebアプリケーションのデプロイは、主にWebアプリケーションの開発時に使用します。この方法を使用すると、変更のデプロイおよびテストを短時間で簡単に実行できます。本番用Webアプリケーションをデプロイする場合は、WebアプリケーションをWARファイルにパッケージし、そのWARファイルをApplication Server Controlコンソールを使用してデプロイします。

WebLogic Server

WebLogic Server(開発モード)に展開Webアプリケーションを手動でデプロイするには、展開Webアプリケーション・ファイルが含まれている最上位のディレクトリをWebLogic Serverインストール環境の次のディレクトリにコピーします。

UNIXの場合: <BEA_HOME>/user_projects/domains/<domain_name>/applications
Windowsの場合: <BEA_HOME>\user_projects\domains\<domain_name>\applications

WebLogic Server 7.0: 最上位のディレクトリを適切なディレクトリにコピーした後、その最上位のディレクトリ内にREDEPLOYという名前の空のファイルを作成します。WebLogic Serverでは、このファイルが検出されると、Webアプリケーションがデプロイされます。(WebLogic Serverでは、数分ごとにこのファイルのタイムスタンプが読み取られ、アプリケーションの再デプロイが必要であるかどうかが判断されます。 したがって、アプリケーション・ファイルが更新されるたびに常にそのファイルを再デプロイするには、REDEPLOYファイルのタイムスタンプを更新する必要があります。UNIXでは、touchコマンドを使用してこの操作を行います。)

WebLogic Server 8.1: WebLogic Serverが開発モードで実行されている場合は、前述のディレクトリに存在するすべての展開ディレクトリ・ファイルが自動的にデプロイされます。バージョン7.0の場合のように、REDEPLOYファイルを作成する必要はありません。

Oracle Application Server

OC4Jで展開Webアプリケーションを手動でデプロイする方法は、多少異なります。展開Webアプリケーションが含まれている最上位のディレクトリをOC4Jインストール環境の次のディレクトリにコピーします。

UNIXの場合: <ORACLE_HOME>/j2ee/home/applications
Windowsの場合: <ORACLE_HOME>\j2ee\home\applications

次に、Webアプリケーションが含まれるように次のアプリケーション・デプロイメント・ディスクリプタを変更します。

UNIXの場合: <ORACLE_HOME>/config/application.xml
Windowsの場合: <ORACLE_HOME>\config\application.xml

次のディスクリプタ・ファイルにエントリを追加して、WebアプリケーションをWebサイトにバインドします。

UNIXの場合: <ORACLE_HOME>/config/default-web-site.xml
Windowsの場合: <ORACLE_HOME>\config\default-web-site.xml

最後に、新しい<application>タグ・エントリを次のファイルに追加して、新しいアプリケーションを登録します。

UNIXの場合: <ORACLE_HOME>/config/server.xml
Windowsの場合: <ORACLE_HOME>\config\server.xml

server.xmlを変更して保存すると、OC4Jによって、このファイルのタイムスタンプの変更が検出され、アプリケーションが自動的にデプロイされます。OC4Jを再起動する必要はありません。

3.6 構成およびデプロイメント・ディスクリプタの移行

WebLogic ServerおよびOracle Application Serverは、J2EE 1.4に完全に準拠しているため、両方のアプリケーション・サーバーでサポートされるXML構成ファイルの標準セットが存在します。 標準セットに含まれているファイルは次とおりです。

各アプリケーション・サーバーには、これらの標準ファイルの他に、それぞれの環境でのみ使用される固有のファイルが存在します。 それらのファイルを次に示します。

3.6.1 Oracle Application Server

  • server.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    これは、OC4Jランタイム全体の構成ファイルです。このファイルで、デプロイされたアプリケーションのディレクトリ、サーバー・ログ・ファイルのパスおよび名前、その他のXMLファイルのパスおよび名前、アプリケーションおよびそのEARファイルの名前、ランタイム・ライブラリへのパスなどの属性を定義します。

  • application.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    これは、特定のOC4Jインストール環境にデプロイされたすべてのアプリケーションに対するグローバル構成ファイルの共通設定です。このファイルは、J2EE WARファイルのapplication.xmlとは異なることに注意してください。

  • <website_name>-web-site.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    このファイルで、Webサイトを定義し、ホスト名、HTTPリスナーのポート番号、Webサイトで提供されるWebアプリケーションとそのURLコンテキスト、HTTPアクセス・ログ・ファイルとそのパスなどの属性を指定します。 定義したWebサイトを実行時に構成するには、OC4Jのserver.xmlファイルに各*-web-site.xmlファイルの名前およびパスを指定する必要があります。

  • data-sources.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    このファイルには、OC4Jランタイムで使用されるデータソースの構成情報が含まれています。このファイルに含まれている情報は、使用されるJDBCドライバ、各データソースのJNDIバインディング、各データソースのユーザー名およびパスワード、使用されるデータベース・スキーマ、各データベースへの最大接続数、タイムアウト値などです。

  • principals.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    このファイルには、デフォルトのXMLUserManagerクラスのユーザー・リポジトリが含まれています。このファイルで、グループ、そのグループに属するユーザーおよびグループ権限を定義します。ロールとグループのマッピングは、グローバルapplication.xmlファイルで定義します。

  • orion-application.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/application-deployments/<app_name>

    または

    Windowsの場合: <ORACLE_HOME>\j2ee\home\application-deployments\<app_name>

    このファイルには、OC4Jインストール環境にデプロイされたアプリケーション(<app_name>)のOC4J固有の情報が含まれています。このファイルには、アプリケーションに関するWebおよびEJBモジュールの名前とセキュリティ情報が含まれています。このファイルは、デプロイ時にOC4Jによって生成されます。

  • global-web-application.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    このファイルには、OC4Jランタイムで内部的に使用されるサーブレット構成情報が含まれています。例としては、JSPトランスレータ・サーブレットなどがあります。

  • orion-web.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/application-deployments/<app_name>/<web_app_name>/

    または

    Windowsの場合: <ORACLE_HOME>\j2ee\home\application-deployments\<app_name>\<web_app_name>\

    このファイルには、<web_app_name>に関するOC4J内部のJSP情報およびサーブレット情報が指定されています。このファイルは、デプロイ時にOC4Jによって生成されます。

  • orion-ejb-jar.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/application-deployments/<app_name>/<ejb_jarfile_name>/

    または

    Windowsの場合: <ORACLE_HOME>\j2ee\home\application-deployments\<app_name>\<ejb_jarfile_name>\

    このファイルには、アプリケーション<app_name>に属する<ejb_jarfile_name>で指定されている、JARファイル内のEJBに関するOC4J内部のデプロイ情報が含まれています。このファイルは、デプロイ時にOC4Jによって生成されます。

  • oc4j-connectors.xml: 次の場所にあります。

    UNIXの場合: <ORACLE_HOME>/j2ee/home/config/
    Windowsの場合: <ORACLE_HOME>\j2ee\home\config\

    このファイルには、OC4Jインストール環境のコネクタ情報が含まれています。

3.6.2 WebLogic Server

  • config.xml: 次の場所にあります。

    UNIXの場合: <BEA_HOME>/config/<domain_name>/
    Windowsの場合: <BEA_HOME>\config\<domain_name>\

    このファイルには、WebLogic Serverドメイン全体の構成情報が含まれています。 このファイルで指定される情報には、ドメイン管理サーバーのホスト名および管理ポート番号、データソースへのJNDIマッピング、JDBC接続プール情報、ドメイン内のすべてのノードにデプロイされたアプリケーション、SSL証明書情報などがあります。

  • weblogic.xml: 次の場所にあります。

    UNIXの場合: <BEA_HOME>/config/<domain_name>/applications/<web_app_name>/WEB_INF/

    または

    Windowsの場合: <BEA_HOME>\config\<domain_name>\applications\<web_app_name>\WEB_INF\

    このファイルで、JSPプロパティ、JNDIマッピング、リソース参照、セキュリティ・ロール・マッピング、およびWebアプリケーションのHTTPセッション・パラメータとCookieパラメータを定義します。このファイルは、WebLogic Serverに固有ですが、手動で作成します。

  • weblogic-ejb-jar.xml: EJBモジュールのMETA-INFサブディレクトリにあります。このファイルで、WebLogic ServerリソースをEJBにマップします。これらのリソースには、セキュリティ・ロール名、データソース、JMS接続、その他のEJBなどがあります。また、このファイルには、対応するejb-jar.xmlファイルに定義されているEJBのキャッシュおよびクラスタリングのためのパフォーマンス属性も含まれています。


    注意:

    前述のファイルによって、各アプリケーション・サーバーで使用されるすべてのXML構成ファイルが網羅されているわけではありません。ここでは、サーブレット・アプリケーションの構成およびデプロイに関連するファイルのみを示しています。他に、HTTPリスナー、RMI、セキュリティなどのコンポーネントを構成するためのXMLファイルも存在します。

3.7 クラスタ対応アプリケーションの移行

Oracle Application Serverでは、WebLogic Serverより包括的なクラスタリング機能が提供されています。

WebLogic Serverでは、HTTPセッション状態のクラスタリングおよびオブジェクトのクラスタリングという2つの主なクラスタ・サービスが提供されています。この項では、HTTPセッション状態のクラスタリング(Webアプリケーション・クラスタリング)について主に説明します。

WebLogic Serverでは、クラスタリングされたサーブレットおよびJSPページにアクセスするクライアントのHTTPセッション状態をレプリケートすることで、サーブレットおよびJSPページのクラスタリングがサポートされます。HTTPセッション状態のクラスタリングを利用するには、メモリー内レプリケーション、ファイル・システムの永続性、またはJDBCの永続性のいずれかを構成して、HTTPセッション状態の永続性を保証する必要があります。

Oracle Application Serverでは、WebLogic Serverと同様のクラスタリング機能がサポートされています。また、Oracle Application Serverでは次の機能も提供されています。