この章では、OC4JインスタンスへのWebモジュールのデプロイと再デプロイについて説明します。次の項目について説明します。
WARファイルとしてパッケージされたスタンドアロンWebモジュールは、OC4Jインスタンスにデプロイできます。ただし、Webモジュールを、default
アプリケーション(スタンドアロンWebアプリケーションの場合)の子、またはWebモジュール・コンポーネントをまだ含んでいない別のデプロイ済アプリケーションの子として指定する必要があります。
WARは、すでにWebモジュールが含まれているアプリケーションの子としてデプロイすることはできません。つまり、acme
アプリケーションにすでにacme-web.war
が含まれる場合は、別のWARファイルをそのアプリケーションにデプロイすることはできません。アプリケーションのEARファイルにWARを再パッケージして、アプリケーションを再デプロイしてください。
OC4Jは、生成したEARファイルでスタンドアロンWARファイルをラップし、EARをデフォルトのデプロイ・ディレクトリORACLE_HOME
/j2ee/
instance
/applications
にデプロイします。EARには、生成されたapplication.xml
デプロイ・ディスクリプタが含まれます。このディスクリプタには、Webモジュールへのアクセスに使用するためにURLに追加するコンテキスト・ルートが含まれています。
スタンドアロンWebモジュールをデプロイした後にOC4Jを再起動する必要はありません。
ここでは、スタンドアロンWebアプリケーションは、default
アプリケーションが親として指定されているWARファイルです。スタンドアロンWebアプリケーションを再デプロイするとき、OC4Jは次の処理を実行します。
実行領域からWebアプリケーションを削除する。
Webアプリケーションの実行に関連付けられていたクラス・ローダーを削除する。
アプリケーション固有のweb.xml
およびorion-web.xml
ディスクリプタを再解析して、変更内容を抽出する。
サーブレット・リスナー、フィルタおよびマッピングを再初期化する。
既存のセッションは、Webアプリケーションに対して指定された永続ディレクトリのファイルにパージまたはシリアライズされます。永続ディレクトリは、<orion-web-app>
要素のpersistence-path
属性で定義されます。新たにデプロイされたアプリケーションを起動すると、そのアプリケーションは、シリアライズされたセッションを含むファイルを永続ディレクトリで探します。
注意:
|
WARにパッケージされている更新済Webモジュールを、OC4Jで実行しているJ2EEアプリケーションに再デプロイすることはできません。WARをアプリケーションのEARファイルに再パッケージしてから、EAR全体を再デプロイする必要があります。
OC4Jでは、アプリケーションの再デプロイまたは再起動を行わずに、アクティブに実行しているWebモジュールに新しいJavaServer Pages(JSP)を追加し、既存のJSPを変更することもできます。
この機能を使用するには、OC4Jインスタンスで、展開したWARファイル構造の適切なディレクトリ(ORACLE_HOME
/j2ee
/instance
/applications/
appName/webModuleName
/
)に、新しいJSPまたは更新されたJSPをドロップします。OC4Jは、ページを変換して実行時にロード(またはリロード)します。
この機能はデフォルトで有効になっており、JSP構成パラメータの「JSPを変更するタイミング」で管理できます。このパラメータは、Application Server Controlで次のように設定できます。
OC4Jインスタンスに対する「管理」タブをクリックします。
「JSPプロパティ」を選択します。
「JSPを変更するタイミング」パラメータを次のいずれかの値に設定します。
JSPの再コンパイル: これは、デフォルト設定です。OC4Jは、JSPページのタイムスタンプをチェックし、前回のロード時から変更されていると、JSPページを再変換して、リロードします。次の「クラスのリロード」で説明する機能も実行されます。
クラスのリロード: OC4Jは、JSPトランスレータで生成されるクラス(ページ実装クラスなど)のタイムスタンプをチェックし、前回ロードされてから変更または再デプロイされたクラスがあればリロードします。
この機能は、たとえば、コンパイル済クラスをデプロイまたは再デプロイしたが、JSPページは開発環境から本番環境にデプロイまたは再デプロイしていない場合などに役立ちます。
実行しない: このパラメータを設定すると自動リロード機能が無効になります。新しいJSPまたは更新されたJSPがOC4Jランタイムに自動的にロードされません。コンテナでは、JSPページのタイムスタンプや再変換が実行されず、生成されるJavaクラスもリロードされません。これは、JSPページが頻繁に変更されないことが想定される本番環境では最も効率のよいモードです。
変更内容を有効にするためにOC4Jインスタンスを再起動します。
この場合では、デプロイ済Webモジュールに依存クラスがすでに存在すること、およびJSPの更新ではweb.xml
またはorion-web.xml
構成ファイルへの変更が必要ないことが想定されています。これらの条件のいずれかが該当しない場合は、WebモジュールをWARファイルとして再パッケージして、EARファイル内のアプリケーション全体を再デプロイする必要があります。
スタンドアロンOC4J環境では、main_mode
<init-param>
要素をglobal-web-application.xml
ファイルに直接設定して、新しいJSPを実行中のWebモジュールに追加することができます。このファイルは、OC4JサーブレットとJSPコンテナの構成ファイルです。Application Server Controlで設定される値は、このファイルに永続化されます。
main_mode
の有効な設定を次に示します。
reload
: Application Server Controlで設定される「クラスのリロード」パラメータに対応しています。
recompile
(デフォルト): 「JSPの再コンパイル」パラメータに対応しています。
justrun
: 「実行しない」パラメータに対応しています。
次の例は、main_mode <init-param>
要素をrecompile
に設定する方法を示しています。これによって、OC4Jは、JSPページのタイムスタンプをチェックし、前回のロード時以降に変更されている場合は、JSPページを再変換してリロードします。
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class> <init-param> <param-name>precompile_check</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>main_mode</param-name> <param-value>recompile</param-value> </init-param> <init-param> <param-name>javaccmd</param-name> <param-value>javac -verbose</param-value> </init-param> </servlet>
注意: javaccmd パラメータは非推奨です。 |