ページの先頭行へ戻る
Interstage Application Server V12.3.0 J2EE ユーザーズガイド(旧版互換)
FUJITSU Software

30.1.2 Servletサービス移行時の注意

Tomcat3.1ベースのServletサービス、またはTomcat4.1ベースのServletサービスから、Tomcat5.5ベースのServletサービスへ移行する場合の注意事項について説明します。
特に表中記載のないものについては、設定や動作上の差分はありません。


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

Tomcat5.5ベースのServletサービスでは、Webアプリケーション環境定義ファイル(deployment descriptor)のタグは以下の方法でチェックします。

Tomcat3.1ベースのServletサービスから移行時の注意

Tomcat3.1ベースのServletサービスでは独自の方式でチェックを行っていたため、これまでチェックされていなかった内容がチェックされる場合があります。


Tomcat4.1ベースのServletサービスから移行時の注意

deployment descriptorをServlet2.4のものに修正した場合、チェック方法(チェック対象)が異なるため、これまで配備時にはチェックされていなかった内容がチェックされる場合があります。


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

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

Webアプリケーション環境定義ファイル(deployment descriptor)修正後、IDE(統合開発環境ツール)等に付属しているdeployment descriptorの検証機能を使用して、修正内容の妥当性を検証することを推奨します。
配備済みのアプリケーションのdeployment descriptorの記述形式を、Servlet2.2または2.3からServlet2.4の記述形式に変更する場合は、アプリケーションを配備しなおしてください。


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

Tomcat3.1ベースのServletサービスから移行時の注意

デフォルトでは、サーブレット・マッピングの定義を行わない、以下のURLの形式でのサーブレットの呼び出しはできません。以下のURLの形式でサーブレットの呼び出しを行っていた場合は、Webアプリケーション環境定義ファイルにサーブレット・マッピングの定義を行う必要があります。

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

IJServerワークユニットの環境設定で、サーブレット・マッピングの定義を行わずに、上記URLの形式で呼び出すことができる設定に切り替えることができますが、以下の理由から推奨しません。

  • クラス名が分かればすべてのサーブレットが動作できてしまう(セキュリティ)。

  • Filterアプリケーションの呼び出しがサポートされない。

  • Servletの仕様外の機能である(移植性)。


Tomcat4.1ベースのServletサービスから移行時の注意

特にありません。


JSPのimport

Tomcat5.5ベースのServletサービスでは、JSP1.2/2.0の仕様の以下のJavaパッケージのクラス以外は、importなしにクラス名のみで直接スクリプトレット使用はできません。

Tomcat3.1ベースのServletサービスから移行時の注意

仕様外のクラスを使用している場合は、下記の対処を行ってください。


Tomcat4.1ベースのServletサービスから移行時の注意

JavaVMオプションの以下のプロパティは使用できません。

-Dcom.fujitsu.interstage.j2ee.ijserver.jspImplicitImport=true(英大文字・英小文字の区別なし)

これにより下記のクラスも使用できなくなります。

  • java.io.*

  • java.util.*

仕様外のクラスを使用している場合は、下記の対処を行ってください。


Tomcat5.5ベースのServletサービスで仕様外のクラスを使用する場合は、以下のいずれかの対処を行ってください。


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

Tomcat3.1ベースのServletサービスから移行時の注意

Webアプリケーションの配備を行う場合、Webアプリケーション名の省略値には以下の値が使用されます。

  • EARファイルの場合

    • application.xmlのcontext-rootに値が設定されている場合には、その設定されている名前が使用されます。

    • application.xmlのcontext-rootに値が設定されていない場合には、WARファイル名から拡張子を除いた名前が使用されます。

  • WARファイルの場合

    WARファイル名から拡張子を除いた名前が使用されます。


Tomcat4.1ベースのServletサービスから移行時の注意

特にありません。


HTTPトンネリングの移行

Tomcat4.1ベースのServletサービスから移行時/Tomcat3.1ベースのServletサービスから移行時の共通の注意

CORBA_ORB_init()関数でのHTTPトンネリング機能の設定は有効となりません。
HTTPトンネリング機能を使用する場合は、IJServerのJavaVMオプション、またはFJjndi.propertiesファイルで、環境プロパティとして「HTTPGW」を設定してください。
環境プロパティ「HTTPGW」の値と設定内容については、「4.1.1 J2EEアプリケーションクライアント」を参照してください。
) アプリケーションでのJNDI機能の使用有無にかかわらず設定してください。
なお、CORBA_ORB_init()関数で設定していた場合でも、アプリケーションの修正は必要ありません。


Tomcat3.1ベースのServletサービスから移行時の注意

HTTPトンネリング機能は、Webアプリケーションのみ運用のタイプのIJServerで使用可能です。以下のタイプのIJServerではHTTPトンネリング機能は使用できません。

  • WebアプリケーションとEJBアプリケーションを同一JavaVMで運用

  • WebアプリケーションとEJBアプリケーションを別JavaVMで運用


Tomcat4.1ベースのServletサービスから移行時の注意

特にありません。


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

Tomcat3.1ベースのServletサービスから移行時の注意

マルチコンテナ機能を使用していた場合には、WebアプリケーションをIJServerへ配備し直す必要があります。「第32章 V5.1以前のServletサービス環境定義の移行」の「サーブレット・ゲートウェイ環境の移行」を参照してください。


Tomcat4.1ベースのServletサービスから移行時の注意

特にありません。


JSPのコンパイル

Java言語仕様に準拠していないコードや推奨されないコードを含むJSPは、以前のバージョンからの移行により、コンパイルに失敗したり、実行結果が変わったりすることがあります。
移行時にはJSPを見直し、Java言語仕様に従っているか確認してください。


JSP内のJavaコードで、ローカル変数名に「org」を使用している。
⇒ユニークなパッケージ名の先頭に使用される文字列(「org」や「com」など)を、ローカル変数名に使用すべきではありません。


Systemwalker Service Quality Coordinatorと連携したトランザクション内訳分析の対象

Tomcat3.1ベースのServletサービスから移行時の注意

未サポートです。


Tomcat4.1ベースのServletサービスから移行時の注意

[ワークユニット] > 「ワークユニット名」 > [環境設定]タブ > [Servletコンテナ設定]で、「マッピングがなくてもサーブレットが動作する」が設定されている場合、以下の形式で呼び出したサーブレットの情報は、すべてまとめて「invoker」として出力されていましたが、この情報は出力されなくなります。

http://servername[:port]/Webアプリケーション名/servlet/サーブレットクラス名

Interstage管理コンソールのWebアプリケーションのモニタの対象

Tomcat3.1ベースのServletサービスから移行時の注意

未サポートです。


Tomcat4.1ベースのServletサービスから移行時の注意

[ワークユニット] > 「ワークユニット名」 > [環境設定]タブ > [Servletコンテナ設定]で、「マッピングがなくてもサーブレットが動作する」が設定されている場合、以下の形式で呼び出したサーブレットの情報は、すべてまとめて「invoker」として出力されていましたが、この情報は出力されなくなります。

http://servername[:port]/Webアプリケーション名/servlet/サーブレットクラス名

JSPのリロード

クラスのオートリロード機能とは別に設定可能となりました。
[ワークユニット] > [新規作成]タブ > [詳細設定] > [Servletコンテナ設定] > [JSPのリロード]で設定可能です。


セション管理用CookieにSecure属性を常に付加する

Tomcat5.5ベースのServletサービスでは、Interstage管理コンソールより以下で設定を行ってください。

既存通りJavaVMオプションとして定義することも可能(※)ですが、Interstage管理コンソールからの設定を推奨します。
※) いずれかで設定されていれば有効となります。


リクエストのエンコーディング

Servletサービスのバージョンによって、リクエストを処理するエンコーディングにデフォルトでは以下の動作差分があります。

対象

Tomcat4.1ベースのServletサービス

Tomcat5.5ベースのServletサービス

リクエストURI

UTF-8 (注1)

ISO-8859-1(設定可能)

GETメソッド時のリクエストパラメタ(クエリストリング)

リクエストボディを処理するエンコーディング (注2)

以下から選択可能。
・リクエストURIを処理するエンコーディング
・リクエストボディを処理するエンコーディング (注2)

POSTメソッド時のリクエストパラメタ(リクエストボディ)

リクエストボディを処理するエンコーディング (注2)

リクエストボディを処理するエンコーディング (注2)

リクエストボディを処理するReader
ServletRequest#getReader()

リクエストボディを処理するエンコーディング (注2)

リクエストボディを処理するエンコーディング (注2)

1) PG48587の修正を適用した場合は以下の順で処理されます。

  1. UTF-8

  2. OSのデフォルトエンコーディング

  3. 自動判定(Java言語の自動判定機能(JISAutoDetect)を使用)

2) 「リクエストボディを処理するエンコーディング」は以下が該当します。

Tomcat5.5ベースのServletサービスでTomcat4.1ベースのServletサービスと同じ動作にする場合は以下の設定を行ってください。

また、Tomcat4.1ベースのServletサービスとTomcat5.5ベースのServletサービスでは、Webアプリケーション環境設定で「エンコーディング」を指定した場合の動作に以下の改善が行われています。
これにより、リクエストのContent-Typeヘッダに正しくエンコーディング「charset=」が指定されている場合は、その値が有効となります。

(1)Webアプリケーション環境設定「エンコーディング」

(2)リクエストのContent-Typeのcharset

(3)アプリケーションによるリクエストへのsetCharacterEncoding

Tomcat4.1ベースのServletサービス

Tomcat5.5ベースのServletサービス

指定あり

あり

あり

(3)が有効

(3)が有効

なし

(1)が有効

(2)が有効

なし

あり

(3)が有効

(3)が有効

なし

(1)が有効

(1)が有効

指定なし

あり

あり

(3)が有効

(3)が有効

なし

(2)が有効

(2)が有効

なし

あり

(3)が有効

(3)が有効

なし

デフォルト(ISO-8859-1)

デフォルト(ISO-8859-1)


HTTP TRACEメソッド

Tomcat5.5ベースのServletサービスでは、HTTP TRACEメソッドはセキュリティ上の理由から使用できません。
なお、HTTP TRACEメソッドは、Webサイトの利用者が通常使用する機能ではありません。


接続先コネクタの制限

Tomcat4.1ベースのServletサービスで、Webサーバコネクタの証明書のシリアル番号と発行者識別DNを指定して接続先コネクタの制限を行っていた場合、Tomcat5.5ベースのServletサービスでは、Interstage管理コンソールの以下の設定で、WebサーバコネクタとServletコンテナ間の通信で使用するSSL定義を適切に設定して、接続先コネクタの制限を行ってください。

同時処理数

Tomcat5.5ベースのServletサービスでは、同時処理数に指定した値のうちの1つは、クライアントシステムからのリクエスト受け付け用として、Servletコンテナの内部処理で使用されます。そのため、指定できる最小値は2になります。


JSP Document(XMLベースのJSP)の属性の順番

JSP Documents(XML形式のドキュメント)の場合、XMLでは属性の順番が保証されないため、依存するアプリは移行により動作しない場合があります。
問題が発生する場合は、依存しないよう修正してください。


修正前

<vsi:loop begin="%= last - s %" end="%= last++ %" />

修正後

<vsi:loop begin="%= last - s %" end="%= last %" /><jsp:scriptlet>last++;</jsp:scriptlet>

リクエストのURIに'\'を含む場合

Tomcat5.5ベースのServletサービスでは、リクエストのURIに'\'(エンコードされている場合も該当)を含む場合、Tomcat4.1ベースのServletサービス(PG56136の修正未適用)では呼び出し可能であったコンテンツが呼び出しできなくなることがあります。