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

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

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

 Interstage Application Server V6.0(以降V6.0)から、Tomcat 4.1ベースのサーブレット実行環境(Servletサービス)を提供しています。

 V5.1以前のServletサービスからV6.0以降のServletサービスに移行する場合には、以下の注意が必要です。

移行方法

 V5.1以前のServletサービス環境設定とV6.0以降のServletサービス環境設定は異なります。Interstage管理コンソールでIJServerワークユニットを作成した後、Webアプリケーションを配備しなおしてください。なお、Webアプリケーションを配備する際には、WARファイルまたはEARファイルの形式である必要があります。
 V6.0以降のServletサービスの操作は、Interstage管理コンソールまたはisj2eeadminコマンドを使用して行います。Interstage管理コンソールについては“Interstage Application Server 運用ガイド”を、isj2eeadminコマンドについては、“リファレンスマニュアル(コマンド編)”を参照してください。

 以下にV5.1以前のServletサービスの環境定義ファイルと、Interstage管理コンソールの操作画面の対応を示します。

V5.1以前の
Servletサービス

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

JServlet環境定義ファイル

[ワークユニット] > [新規作成]タブ > [詳細設定] > [ワークユニット設定]
 または
[ワークユニット] > “ワークユニット名” > [環境設定]タブ > [詳細設定] > [ワークユニット設定]

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

【WebサーバとIJServerワークユニットを同一マシンで運用する場合】
 IJServerワークユニットとWebアプリケーションの設定を行うことで自動的に設定されます。
【WebサーバとIJServerワークユニットを別マシンで運用する場合】(注1)
 [Webサーバ] > [Webサーバコネクタ] > [新規作成]タブ
  または
 [Webサーバ] > [Webサーバコネクタ] > “ワークユニット名” > [環境設定]タブ

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

【Servletコンテナの設定】
 [ワークユニット] > “ワークユニット名” > [ログ定義]タブ および
 [ワークユニット] > [新規作成]タブ > [詳細設定] > [Servletコンテナ設定]
  または
 [ワークユニット] > “ワークユニット名” > [環境設定]タブ > [詳細設定] > [Servletコンテナ設定]
【Webアプリケーションの設定】
 [ワークユニット] > “ワークユニット名” > [配備]タブ > [詳細設定] > [Webアプリケーション設定]
  または
 [ワークユニット] > “ワークユニット名” > “モジュール名” > [環境設定]タブ

名前変換定義ファイル

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

/opt/FJSVj2ee/etc/FJWebebeProperties.xml

[ワークユニット] > “ワークユニット名” > “モジュール名” > [名前変換]タブ

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

V5.1以前では指定しても意味がありませんでしたが、V6.0以降のServletサービスでは名前変換定義情報の設定対象であるWebアプリケーションの名前を正しく指定してください。app-nameタグを指定しない場合や、タグに間違ったWebアプリケーション名を指定すると名前変換は動作しません。
app-nameタグに指定するWebアプリケーション名は以下のようにしてください。

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

JServletプロパティファイル

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

(注1) WebサーバコネクタとIJServerワークユニットが別マシン([システム] > [環境設定]タブ > [Servletサービスの詳細設定] > [Webサーバとワークユニットを同一のマシンで運用する]で[運用しない]を選択)の場合。
(注2) JServletプロパティファイルの“com.fujitsu.interstage.jservlet.session.cookie.secure.mode”のみ、以下のJava VMオプションで移行可能です。
   “com.fujitsu.interstage.j2ee.ijserver.SessionCookieSecurity”

 移行に際しての定義項目の対応については、“V5.1以前のServletサービス環境定義の移行”を参照してください。

サポートWebサーバ

 V6.0以降のServletサービスでは、以下のWebサーバとの接続をサポートしています。

 なお、接続するWebサーバとしてはInterstage HTTP Serverを推奨しています。
 V5.1以前のServletサービスで、その他のWebサーバを使用していた場合には、Interstage HTTP Serverへ移行することをお勧めします。
 各Webサーバでの設定については、“J2EEユーザーズガイド”の“Webサーバの環境設定”を参照してください。
 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)のサーブレット・マッピングで定義されたものしか動作しません。
 V5.1以前のServletサービスで、サーブレット・マッピングの定義を行わず、以下のURLの形式でサーブレットの呼び出しを行っていた場合は、Webアプリケーション環境定義ファイルにサーブレット・マッピングの定義を行う必要があります。

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

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

JSPのimport

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

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

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

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

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

HTTPトンネリングの移行

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

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

マルチコンテナ機能の移行

 V5.1以前のServletサービスでマルチコンテナ機能を使用していた場合には、“1つのWebアプリケーションを複数のServletコンテナで対応する”および“複数のWebアプリケーションを複数のServletコンテナで対応する”を参照し、WebアプリケーションをIJServerへ配備し直す必要があります。

JSPのコンパイル

 V6.0以降のServletサービスではJava言語仕様に準拠している必要があります。
 そのため、V5.1以前のServletサービスからV6.0以降のServletサービスへの移行時、Java言語仕様に準拠していないJSPがある場合、V5.1以前のServletサービスでコンパイルできていたJSPがV6.0以降のServletサービスではコンパイルに失敗したり、実行結果が変わることがあります。
 移行時にはJSPを見直し、Java言語仕様に準拠していないコードがないことを確認してください。

非互換一覧

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

No.

機能

V5.1以前の
Servletサービス

V6.0以降のServletサービス

1

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

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

カスタムタグの開発で実装するjavax.servlet.jsp.tagext.Tagインタフェースのpublic void release()メソッドは、Webアプリケーション終了時に呼び出されます。
V5.1以前と同じタイミングで処理を行いたい場合には、カスタムタグを以下のように修正して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ワークユニット名\プロセス番号

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管理コンソールの[ワークユニット] > “ワークユニット名” > [環境設定]タブ > [詳細設定] > [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オブジェクト

V5.1以前の動作と同じ動作をさせる場合には、Interstage管理コンソールの[ワークユニット] > “ワークユニット名” > [環境設定]タブ > [詳細設定] > [ワークユニット設定] > [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配下にXMLの文法に誤りのある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) 富士通株式会社 2007