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

付録B V5.1以前のServletサービスの環境定義ファイル> B.5 サーブレット・コンテナ環境定義ファイル> B.5.3 サーブレット・コンテナ環境定義ファイルのタグの詳細

B.5.3.3 サーブレット・コンテナの環境

 サーブレット・コンテナの環境定義は、ContextManagerタグで定義します。

■記述形式

-------------------------------------------------------------------------------
  <ContextManager workDir="dir" clientSession="method" version="value" 
   sessionRecovery="flag" name="string" sessionIdPrefix="value">
    ・・・
  </ContextManager>
-------------------------------------------------------------------------------

■属性の内容

属性

説明

属性の
省略

workDir

サーブレット・コンテナが、コンパイルしたJSPのオブジェクトを格納するディレクトリを記述します。
省略値は、"work"です。
ディレクトリは、サーブレット・コンテナの実行ディレクトリからの相対パスまたはフルパスで指定します。
サーブレット・コンテナの実行ディレクトリは、JServlet環境定義ファイルの以下の項目で指定します。

  • default.execdirまたは[containername].execdir

複数のサーブレット・コンテナを起動する場合、サーブレット・コンテナごとに異なるディレクトリを指定してください。

clientSession

セションCookieの設定方法を記述します。以下の値を指定します。

  • default :(省略値)
    初回レスポンスだけ設定します。
    クライアントの終了またはセションタイムアウトまでセションの継続が可能です。
  • permanent:
    毎回のレスポンスで設定します。
    セションタイムアウト前であれば、クライアントを一旦終了してもセションの継続が可能です。
  • disable:
    セションCookieを使用せずに、セションIDはURLパラメタに埋め込まれます。
    encodeURLメソッドを使用してください。
    同一マシンで複数のブラウザを起動して、ブラウザ毎に異なるセションIDを設定することが可能です。

Webアプリケーション毎にセションCookieの設定方法を指定する場合は、ContextタグのclientSession属性で指定します。
ContextManagerタグとContextタグの両方でclientSession属性を指定した場合は、Contexteタグの設定が有効となります。

version

サーブレット・コンテナの下位互換性を保つためにサーブレット・コンテナのバージョンを指定します。
通常は、インストールされているバージョンを指定します。

省略された場合は、version="4.1"以前のバージョンを指定したことになります。
機能の互換性の詳細は、「互換性リスト」を参照して下さい。

 下記のように対応するバージョンを指定して下さい。
  製品のバージョン 指定する値
  V5.0L20       5.1

errResponse

リクエストの処理でErrorやExceptionが発生した場合、レスポンスにスタックトレースを返却するかどうかを設定します。以下の値を記述します。

  • true
    スタックトレースを返却します。V4.1以前の動作と同じです。
  • false (省略値)
    スタックトレースを返却しません。

運用時には内部の情報の漏洩を防ぐため、falseの指定を推奨します。

sessionRecovery (*1)

セションリカバリ機能の有効/無効を記述します。以下の値を指定します。

  • true :有効
  • false :無効 (省略値)

有効にする場合は、本タグのname属性も合わせて指定する必要があります。true以外を指定した場合、falseが指定されたものとして動作します。

name (*1)

セションリカバリ機能を有効にする場合に必ず指定する必要があります。
値が記述されなかった場合および値が不正であった場合、セションリカバリ機能は無効になります。
記述する値は、以下の形式で記述してください。
  name="IPアドレス:ポート番号"
[IPアドレス]
Servletサービスを運用するマシンのIPアドレスを指定してください。<Parameter>タグの属性の組み合わせname="ipaddress" value=・・・が定義されている場合はその値と同じ値を指定してください。
[ポート番号]
<Parameter>タグの属性の組み合わせname="port" value=・・・で指定した値を指定してください。
[注意事項]
セションレジストリサーバをサーブレット・コンテナと別のサーバマシン上に配備して運用する場合には、"localhost"や"127.0.0.1"は指定できません。

sessionIdPrefix (*1)

セションIDに含める値を指定します。
サーブレット・コンテナごとに固有の値を指定してください。
記述する値は、以下の形式で記述してください。
 sessionIdPrefix="value"
[value]
英数字1文字以上8文字以内で指定してください。
[記述例]
 sessionIdPrefix="CONT1"
[生成セションID例]
 CONT1b76779887972175626521053246093878

[注意事項]

  • 本定義項目は、セションリカバリ機能の動作モード(*4)が2の場合のみ有効です。動作モードが1の場合は無視されます。
  • 指定した値はCookieまたはURLに含まれてネットワーク上を流れます。
    セキュリティ上問題のない値を指定してください。
  • 指定した文字数分、セションIDの最大文字数が大きくなります。

×(*3)

 (*1)は、Solaris OEステムの以下の製品でだけ指定可能です。

 (*3)は、セションリカバリ機能の動作モード(*4)が2の場合のみ。

 (*4)は、com.fujitsu.interstage.jservlet.sessionrecovery.modeを参照してください。

■互換性リスト

内容

バージョン

適応時期

4.1

5.0/5.1

RequestDispatcher.forwardを実行後にforwardを実行したサーブレットがレスポンスを出力した場合

V5.0リリース時

レスポンスは無視される

×

 

レスポンスはクライアントに返される

×

 

HttpServletResponse.getWriter()で取得したPrintWriterに対し、flush()を行った場合、のHttpServletResponseの状態

V5.0リリース時

commitされる

×

 

commitされない

×

 

ServletContext.getResource(“パス")の“パス"に存在しないパスを指定した場合

V5.0リリース時

nullが返される

×

 

指定したパスのURLが返される

×

 

ServletからExceptionをthrowした場合

V5.0リリース時

ステータスに500が設定される

×

 

ステータスに500が設定されない

×

 

HttpServletResponse.setStatus(“ステータスコード",“メッセージ")を呼出した場合、HTTPレスポンスヘッダーのStatus-Lineに

V5.0リリース時

“メッセージ"が設定される

×

 

“メッセージ"が設定されない

×

 

HttpServletRequest.getCookies()をCookieが存在しない場合に呼出した場合

V5.0リリース時

nullが返される

×

 

空のCookie[]が返される

×

 

HttpServletResponse.sendErrorを実行後に、sendErrorを実行したサーブレットがレスポンスヘッダーを設定した場合

V5.0リリース時

設定されない

×

 

設定される

×

 

レスポンスをcommit後にsendErrorを呼出した場合

V5.0リリース時

IllegalStateExceptionがthrowされる

×

 

sendErrorは実行される

×

 

HttpServletResponse.sendRedirectを実行後に、sendErrorを実行したサーブレットがレスポンスヘッダーを設定した場合

V5.0リリース時

設定されない

×

 

設定される

×

 

レスポンスをcommit後にsendRedirectを呼出した場合

V5.0リリース時

IllegalStateExceptionがthrowされる

×

 

sendRedirectは実行される

×

 

エキストラパス情報がリクエストに存在しない場合にHttpServletRequest.getPathTranslated()を呼出した場合

V5.0リリース時

nullが返される

×

 

webアプリケーションのルートディレクトリ名が返される

×

 

ServletResponse.setLocale(Locale)でLocaleを設定した場合のContent-Languageレスポンスヘッダーの値

V5.0リリース時

“言語"-“国"が設定される

×

 

“言語"が設定される

×

 

リクエストヘッダーにAccept-Languageが複数指定されている場合にHttpServletRequest.getHeaders("Accept-Language")を呼出した場合

V5.0リリース時

1つ1つの値が1つの要素としてEnumerationが返される

×

 

","で区切られた値を1つの要素としてEnumerationが返される

×

 

ボディが空の場合は、doInitBody()やdoAfterBody()は呼ばれない

V5.0リリース時

doInitBody()やdoAfterBody()は呼ばれる

×

 

doInitBody()やdoAfterBody()は呼ばれない

×

 

カスタムタグがボディなしの場合、コンテナはNullPointerExceptionをスローする

V5.0リリース時

コンテナはNullPointerExceptionをスローする

×

 

コンテナはNullPointerExceptionをスローしない

×

 

<jsp:forward>アクションを使用する前に出力を行った場合

V5.0リリース時

その出力はクリアされる

×

 

その出力はクリアされない

×

 

RequestDispatcher.forwardを呼出す前にレスポンスに対して出力を行った場合

V5.0リリース時

レスポンスに対して行った出力はクリアされる

×

 

レスポンスに対して行った出力はクリアされない

×

 

ServletContext.setAttributeで設定する値にnullを指定して呼出した場合

V5.0リリース時

removeAttributeを呼出した時と同じ動作をする

×

 

NullPointerExceptionがスローされる

×

 

ServletRequest.setAttributeで設定する値にnullを指定して呼出した場合

V5.0リリース時

removeAttributeを呼出した時と同じ動作をする

×

 

何もしない。設定した値はそのまま変わらない

×

 

HttpSession.setAttributeで設定する値にnullを指定して呼出した場合

V5.0リリース時

removeAttributeを呼出した時と同じ動作をする

×

 

NullPointerExceptionがスローされる

×

 

■記述例

-------------------------------------------------------------------------------
  <Server>
    <ContextManager workDir="work/sample" clientSession="permanent" version="5.1" 
     sessionRecovery="false" name="string">
    ・・・
    </ContextManager>
  </Server>
-------------------------------------------------------------------------------

■注意事項

 使用しなくなったJSPファイルが多くなり、JSPより生成された不要なサーブレットが増えた場合、<ContextManager>タグのworkDir属性に指定したディレクトリ配下に生成されたファイルやディレクトリを削除してください。


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

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