Interstage Application Server 移行ガイド
目次 索引 前ページ次ページ

第2章 旧バージョン・レベルからの変更> 2.1 主な変更内容

2.1.2 Servletサービス(Tomcat 4.1ベースのサーブレット実行環境)への移行

 Interstage Application Server V6.0(以降V6.0)では、Tomcat 4.1ベースのサーブレット実行環境(Servletサービス)を提供します。また旧バージョンのサーブレット実行環境として、Tomcat3.1ベースのサーブレット実行環境(旧バージョンのServletサービス)を提供します。なお旧バージョンのServletサービスでは、V6.0の新機能を使用できません。

 業界標準であるTomcat 4.1をベースとしたサーブレット実行環境によるアプリケーションの移植性向上や、V6.0の新機能であるIJServerワークユニットによる高度なアプリケーション運用操作/監視を行う上でも、V6.0のServletサービスへの移行を推奨します。

 旧バージョンのServletサービスからV6.0のServletサービスに移行する場合には、以下の注意が必要です。

移行方法

 旧バージョンのServletサービス環境設定とV6.0のServletサービス環境設定は異なります。Interstage管理コンソールでIJServerワークユニットを作成した後、Webアプリケーションを配備しなおしてください。なお、Webアプリケーションを配備する際には、WARファイルまたはEARファイルの形式である必要があります。
 V6.0のServletサービスの操作はすべてInterstage管理コンソールから行います。

 旧バージョンのServletサービスの環境定義ファイルに対して行っていた各種設定または閲覧は、Interstage管理コンソールから行うことができます。以下に旧バージョンのServletサービスの環境定義ファイルと、Interstage管理コンソールの操作画面の対応を示します。
 Interstage管理コンソールについては、“Interstage運用ガイド”を参照してください。

旧バージョンのServletサービス

V6.0のServletサービス
(Interstage管理コンソール)

JServlet環境定義ファイル

[システム]>[ワークユニット]>[新規作成]タブ>
 または
[システム]>[ワークユニット]>[IJServerワークユニット名]>[環境設定]タブ
“ワークユニット設定”

サーブレット・ゲートウェイ環境定義ファイル

【WebサーバとIJServerワークユニットを同一マシンで運用する場合】
 IJServerワークユニットとWebアプリケーションの設定を行うことで自動的に設定されます。

【WebサーバとIJServerワークユニットを別マシンで運用する場合】(注1)
 [システム]>[サービス]>[Webサーバ]>[Webサーバコネクタ]>[新規作成]タブ
  または
 [システム]>[サービス]>[Webサーバ]>[Webサーバコネクタ]>[IJServerワークユニット名]>[環境設定]タブ

サーブレット・コンテナ環境定義ファイル

【Servletコンテナの設定】
 [システム]>[ワークユニット]>[IJServerワークユニット名]>[ログ定義]タブ および
 [システム]>[ワークユニット]>[新規作成]タブ>“詳細設定”>“Servletコンテナ設定”
  または
 [IJServerワークユニット名]>[環境設定]タブ>“Servletコンテナ設定”

【Webアプリケーションの設定】
 [システム]>[ワークユニット]>[IJServerワークユニット名]>[配備]タブ>“詳細設定”>“Webアプリケーション設定”
  または
 [システム]>[ワークユニット]>[IJServerワークユニット名]>[Webアプリケーション]>[Webアプリケーション名を選択]>[環境設定]タブ

名前変換定義ファイル


C:\INTERSTAGE\j2ee\etc\FJWebebeProperties.xml


/opt/FJSVj2ee/etc/FJWebebeProperties.xml

名前変換ファイル
 J2EE共通ディレクトリ\ijserver\[IJServer名]\FJebeProperties.xml

※J2EE共通ディレクトリのデフォルト


  C:\Interstage\J2EE\var\deployment


  /opt/FJSVj2ee/var/deployment

旧バージョンのServletサービスから移行する時には、名前変換を使うWebアプリケーションを配備したIJServerのIJServerディレクトリ(J2EE共通ディレクトリ\ijserver\[IJServer名])に名前変換定義ファイルをコピーして、ファイル名をFJebeProperties.xmlへ改名してください。
そして、app-nameタグに名前変換を行うWebアプリケーション名を指定するようにテキストエディタ等で編集してください。(旧バージョンのServletサービスでは本タグには意味がありませんでした。)app-nameタグを指定しない場合や、タグに間違ったWebアプリケーション名を指定すると名前変換は動作しません。
app-nameタグに指定するWebアプリケーション名は以下のようにしてください。

  • 以下の文字以外の文字が使用されていないこと
    英数字、'+'、'-'、'.'、'_'、'$'
  • '.'を使用する場合は、他の文字と一緒に使用されていること

また、旧バージョンの名前変換定義ファイルには、すべてのIJServerの名前変換が含まれていますので、適宜削除して使用するようにしてください。

配備時の名前変換定義(interstage.xml)の<app-name>タグ

旧バージョンでは指定しても意味がありませんでしたが、V6.0のServletサービスでは名前変換定義情報の設定対象であるWebアプリケーションの名前を正しく指定してください。Webアプリケーションの名前については、名前変換定義ファイルを参照してください。

JServletプロパティファイル

(注2)
[システム]>[ワークユニット]>[新規作成]タブ>
 または
[システム]>[ワークユニット]>[IJServerワークユニット名]>[環境設定]タブ
“ワークユニット設定”の“JavaVMオプション"

(注1) WebサーバコネクタとIJServerワークユニットが別マシン([システム]>[環境設定]タブの“Servletサービスの詳細設定”で“Webサーバとワークユニットを同一のマシンで運用しない”を選択)の場合。

(注2) JServletプロパティファイルの“com.fujitsu.interstage.jservlet.session.cookie.secure.mode”のみ、以下のJavaVMオプションで移行可能です。

 移行に際しての定義項目の対応については、“旧バーションServletサービス環境定義の移行”を参照してください。

旧バージョンのInterstage HTTP Serverの資源を使用する場合

 以下の操作により旧バージョンのInterstage HTTP Serverの資源を使用する場合には、WebサーバからServletサービスへの通信を行うWebサーバコネクタの設定が必要です。

【バージョンアップの上書きインストールをした場合】

 上書きインストールを行うことで、Interstage HTTP Serverの環境定義ファイル(httpd.conf)の末尾に以下に示す定義情報が追加されます。先頭の"#"を削除して定義情報を有効にしてください。

# LoadModule jk2_module "C:/Interstage/F3FMjs4/gateway/mod_jk2.dll"

# LoadModule jk2_module "/opt/FJSVjs4/gateway/mod_jk2.so"

【旧バージョンでバックアップした資源をリストアした場合】

 Interstage HTTP Serverの環境定義ファイル(httpd.conf)の末尾に以下に示す定義項目を追加してください。

LoadModule jk2_module "C:/Interstage/F3FMjs4/gateway/mod_jk2.dll"

LoadModule jk2_module "/opt/FJSVjs4/gateway/mod_jk2.so"


 Interstage HTTP Serverの環境定義ファイル(httpd.conf)に以下の旧バージョンのサーブレット・ゲートウェイの定義が設定されている場合には、その定義情報を削除してください。以下に旧バージョンのサーブレット・ゲートウェイの定義について記載します。

LoadModule jsvlt_module "C:/Interstage/F3FMjs2/gateway/jsgw_apapi_is.dll"
include "サーブレット・ゲートウェイ環境定義ファイルのフルパス名"

LoadModule jsvlt_module "/opt/FJSVjs2/gateway/jsgw_apapi_is.so"
include "サーブレット・ゲートウェイ環境定義ファイルのフルパス名"

サポートWebサーバ

 V6.0のServletサービスとの接続をサポートするWebサーバはInterstage HTTP Serverです。
 旧バージョンのServletサービスで、その他のWebサーバを使用していた場合には、Interstage HTTP Serverへ移行してください。

 InfoProvider ProからInterstage HTTP Serverへ移行する場合には、“Webサーバ(Interstage HTTP Server)への移行”を参照してください。

Webアプリケーション環境定義ファイル(deployment descriptor)の記述形式

 Webアプリケーション環境定義ファイル(deployment descriptor)のタグの指定方法をDTD(文書型定義)によりチェックします。
 タグの指定方法が誤っている場合には、Interstage管理コンソールで配備を行った際に、画面上のメッセージ領域にエラーメッセージを出力して配備を中断します。
 また、IJServerの起動時にタグの指定方法の誤りが検出された場合には、IJServerのコンテナログに以下のエラーメッセージが出力されますので、“J2EEユーザーズガイド”の“Webアプリケーション環境定義ファイル(deployment descriptor)”を参照して修正してください。たとえば、servlet-mappingタグをservletタグよりも前に定義した場合にエラーとなります。

[ERROR] Digester - -Parse Error at line [行数] column [列数]: [原因]

 Webアプリケーション環境定義ファイル(deployment descriptor)修正後、IDE(統合開発環境ツール)等に付属しているdeployment descriptorの検証機能(Apworksのワークベンチ ApdesignerのXMLエディタ)を使用して、修正内容の妥当性を検証することを推奨します。

サーブレット・マッピング

 V6.0のサーブレットは、Webアプリケーション環境定義ファイル(deployment descriptor)のサーブレット・マッピングで定義されたものしか動作しません。
 旧バージョンのServletサービスで、サーブレット・マッピングの定義を行わず、以下のURLの形式でサーブレットの呼び出しを行っていた場合は、Webアプリケーション環境定義ファイルにサーブレット・マッピングの定義を行う必要があります。

http://サーバホスト名:ポート番号/Webアプリケーション名/servlet/サーブレット名

 IJServerワークユニットの環境設定で、サーブレット・マッピングの定義を行わずに、上記URLの形式で呼び出すことができる設定に切り替えることができますが、クラス名が分かればすべてのサーブレットが動作できてしまうため、セキュリティの面から推奨しません。
 また本設定を行った場合には、Filterアプリケーションの呼び出しはサポートされません。

JSPのimport

 JSP1.2の仕様により、以下のJavaパッケージのクラスは、importすることなくクラス名のみで直接スクリプトレット使用できます。

 また、Interstage管理コンソールの[システム] > [ワークユニット] > [IJServerワークユニット名を選択] > [環境設定]タブ > [ワークユニット設定]の“JavaVMオプション”に以下のプロパティを設定することで、他システムからのJSPアプリケーションの移行性を高めることができます。

 上記以外のパッケージのクラスをクラス名のみで使用するためには、pageディレクティブのimport属性を使用してimportが必要です。
 旧バージョンのServletサービスでは、一部クラスはimportせずにクラス名のみで使用できましたが、V6.0のServletサービスではJSPの仕様どおりimportしてください。

配備時のWebアプリケーション名

 Interstage管理コンソールでWebアプリケーションの配備を行う場合、Webアプリケーション名の省略値には以下の値が使用されます。旧バージョンのServletサービスでWebアプリケーション名の省略値として使用されていたweb.xmlのdisplay-nameは、V6.0のServletサービスではWebアプリケーション名の省略値として使用されません。

HTTPトンネリングの移行

 旧バージョンのサーブレットでHTTPトンネリング機能を使用していた場合には、Webアプリケーションのみ運用のタイプのIJServerへ配備し直す必要があります。以下のタイプのIJServerではHTTPトンネリング機能は使用できません。

 HTTPトンネリングの設定の詳細については、“セキュリティシステム運用ガイド”の“J2EEのHTTPトンネリング”−“IJServer(Webアプリケーションのみ運用)でのHTTPトンネリングの使用方法”を参照してください。

非互換一覧

 旧バージョンのServletサービスとV6.0のServletサービスの非互換項目を以下に示します。該当する機能をWebアプリケーションで使用している場合には、Webアプリケーションを修正してください。

No.

機能

旧バージョンの
Servletサービス

V6.0のServletサービス

1

カスタムタグのTag#release()メソッド

カスタムタグの開発で実装するjavax.servlet.jsp.tagext.Tagインタフェースのpublic void release()メソッドは、カスタムタグを使用したページの呼び出しが終るごとに呼び出されます。

カスタムタグの開発で実装するjavax.servlet.jsp.tagext.Tagインタフェースのpublic void release()メソッドは、Webアプリケーション終了時に呼び出されます。
旧バージョンと同じタイミングで処理を行いたい場合には、カスタムタグを以下のように修正してdoFinally()メソッドに処理を記述してください。
javax.servlet.jsp.tagext.TryCatchFinallyインタフェースをimplementsして、以下のメソッドを実装します。
 public void doCatch(Throwable t)
 public void doFinally()

2

Webブラウザに返却されるステータスコード

Webアプリケーション環境定義ファイルに<error-page>タグが設定されている場合や、JSPのerrorPage属性が設定されている場合は、ステータスコードは200が返却されます。

Webアプリケーション環境定義ファイルに<error-page>タグが設定されている場合や、JSPのerrorPage属性が設定されている場合にも、発生した現象のステータスコードがそのまま返却されます。

3

JSPの呼び出し

JSPのリロードを行う設定の場合、前回コンパイルされたJSPファイルとファイル更新日時が異なるJSPファイルの場合にリロードされます。

大文字・小文字は区別されません。

JSPのリロードを行う設定の場合、前回のコンパイルで生成されたクラスファイルよりも新しい更新日時のJSPファイルの場合にリロードされます。

大文字・小文字は区別されます。

4

Webアプリケーション環境定義ファイルの<servlet>タグ内の<load-on-startup>タグ

0を指定した場合は、Servletコンテナ起動時にロードされません。

0を指定した場合は、最後にロードされます。負の数を指定した場合は、Servletコンテナ起動時にロードされません。

5

Servletコンテナの実行ディレクトリ

JServlet環境定義ファイルのdefault.execdir または [containername].execdir定義で指定します。


変更できません。以下のディレクトリになります。
%IS_HOME%\J2EE\var\deployment\ijserver\IJServerワークユニット名\current\IJServerワークユニット名\プロセス番号
Plus、Web-J Editionのみの非互換です。他の製品、OSでは、変更可能です。

6

Webブラウザにスタックトレースを表示

サーブレット・コンテナ環境定義ファイルのContextManagerタグのerrResponse属性で、リクエストの処理でErrorやExceptionが発生した場合、Webブラウザにスタックトレースを表示するかどうかを指定します。

内部の情報が漏洩する可能性があるため、リクエストの処理でErrorやExceptionが発生した場合、Webブラウザにスタックトレースを表示しません。

7

Webアプリケーション環境定義ファイルの<servlet-mapping>タグ内の<servlet-name>タグ

指定していない名前を記述した場合は、無効となります。

指定していない名前を記述した場合は、Webアプリケーションの起動に失敗します。

8

Webアプリケーション環境定義ファイルの<welcome-file-list>タグ内の<welcome-file>タグ

welcome fileを省略した場合、サーブレット・コンテナ環境定義ファイルで記述するContext定義のdirList属性の指定により、その実体となるディレクトリ配下のディレクトリやファイルの一覧、またはステータスコード404(ファイルが存在しない)が表示されます。

welcome fileを省略した場合、デフォルト設定が使用されます。デフォルト設定のファイルは以下の順番で有効になります。

  1. index.html
  2. index.htm
  3. index.jsp

welcome file(省略時はデフォルト設定)に該当するファイルがない場合は、Interstage管理コンソールの[システム]>[ワークユニット]>[IJServerワークユニット名を選択]>[環境設定]タブ>“Servletコンテナ設定”の“ファイルの一覧表示”で設定されている値によって、ステータスコード404(ファイルが存在しない)、またはその実体となるディレクトリ配下のディレクトリやファイルの一覧が表示されます。

9

Webアプリケーション環境定義ファイルの<env-entry>タグ内の<env-entry-value>タグ

<env-entry-value>タグを省略して環境エントリをlookupした場合にはjavax.naming.NameNotFoundExceptionが発行されます。

<env-entry-value>タグを省略した場合には、デフォルト値が

以下のように設定されます。

env-entry-type

エントリ値

java.lang.Boolean

Boolean.FALSE

java.lang.Byte

値0のByteオブジェクト

java.lang.Character

値0のCharacterオブジェクト

java.lang.String

なし (注1)

java.lang.Short

値0のShortオブジェクト

java.lang.Integer

値0のIntegerオブジェクト

java.lang.Long

値0のLongオブジェクト

java.lang.Float

値0のFloatオブジェクト

java.lang.Double

値0のDoubleオブジェクト

旧バージョンの動作と同じ動作をさせる場合には、Interstage管理コンソールの[システム]>[ワークユニット]>[IJServerワークユニット名を選択]>[環境設定]タブ>“ワークユニット設定”の“JavaVMオプション”に“-Dcom.fujitsu.interstage.jservlet.naming.defaultenventry=FALSE”を設定してください。

10

Webアプリケーション環境定義ファイルの<taglib-location>タグ

存在しないパスを記述した場合は、無効となります。

Webアプリケーションの起動に失敗します。

11

JNDIのHTTPトンネリングの設定タイミング

JNDIが行うHTTPトンネリングの設定は、lookupメソッド等のjavax.naming.Contextのメソッド呼び出しのタイミングで行われます。

JNDIが行うHTTPトンネリングの設定は、javax.naming.InitialContextをインスタンス化するタイミングで行われます。
HTTPトンネリングを使用する場合で、ユーザアプリケーションでorg.omg.CORBA.ORB.init()メソッドを呼び出している場合には、org.omg.CORBA.ORB.init()メソッドおよびJNDIの環境プロパティでHTTPトンネリングの設定を行ってください。
org.omg.CORBA.ORB.init()メソッドの引数に関しては、“セキュリティシステム運用ガイド”(注2)の“HTTPトンネリング”−“HTTPトンネリングの環境設定”−“HTTPトンネリングの起動方法”を参照してください。
JNDIの環境プロパティに関しては、“J2EE ユーザーズガイド”の“JNDI”−“JNDIサービスプロバイダの環境設定”を参照してください。

12

WEB-INF配下に誤ったTagLibraryDescriptorファイルが存在した場合

“XML parsing error on file”がコンテナの標準出力、標準エラー出力のログに出力されるが、サーブレット・コンテナ起動に成功します。

メッセージ“IJServer15111”がコンテナログに出力され、Servletコンテナの起動に失敗します。

13

Webアプリケーション環境定義ファイルの<servlet-mapping>タグ内の<url-pattern>タグ

特定の拡張子をもつURLを指定した場合(例:*.jsp)は、URL内の“/”と“/”で囲まれた箇所もマッピング対象となります。

特定の拡張子をもつURLを指定した場合(例:*.jsp)は、URL内の“/”と“/”で囲まれた箇所もマッピング対象とならず、一番最後の“/”以降がマッピング対象となります。

14

Webアプリケーション環境定義ファイルの<welcome-file-list>タグ内の<welcome-file>タグに指定されたファイルを表示する場合の動作

  • URLが“/”で終わっていない場合、URLの最後に“/”を追加した値をLocationヘッダに指定し、ステータスコード302を返します。
  • URLが"/"で終わっている場合、<welcome-file>タグに指定されたファイルを返します。
  • URLが“/”で終わっていない場合、URLの最後に“/”を追加した値をLocationヘッダに指定し、ステータスコード302を返します。
  • URLが“/”で終わっている場合、<welcome-file>タグに指定されたファイル名を追加したURLをLocationヘッダに指定し、ステータスコード302を返します。

15

複数のAccept-Languageヘッダを持つリクエストを受け付けた場合のHttpServletRequest#getHeaders()メソッドの動作 (注3)

  • version属性(※)に4.1を指定または省略している場合
    “,”で区切られた値を1つの要素としてEnumerationが返されます。
    例)
     ja, es
  • version属性(※)に5.0または5.1を指定している場合
    1つ1つの値が1つの要素としてEnumerationが返されます。
    例)
     ja
     es

※サーブレット・コンテナ環境定義ファイルのContextManagerタグ内

“,”で区切られた値を1つの要素としてEnumerationが返されます。
例)
 ja, es

注1) javax.naming.NameNotFoundExceptionが発行されます。

注2) 以下の製品で提供している“セキュリティシステム運用ガイド”を参照してください。

 注3) 例)

----------------------------------
Accept-Language: ja
Accept-Language: es
----------------------------------

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2006