11.13.2. WARファイル作成時の実行環境の変更¶
IM-Juggling でWARファイルを作成する際、以下の画面で「実行環境」項目を選択する事ができます。
項目
- 概要
- 環境種別毎における各モジュールの動作仕様
- アクセスコンテキスト情報をログに出力します。
- ベースURLが未設定の場合に警告ログを出力します。
- Debug#browse 画面にコールスタック情報を表示します。
- すべてのスクリプト開発モデルのプログラムをインタプリタモードで実行します。
- 同一パスに対して異なる認可設定が存在している場合に警告ログを出力します。
- デバッグ情報を付与したキークラスを生成します。
- CertificationServletUtil#validateCertificationConfirm()がtrueを返却します。
- 検索実行エラー発生時に、開発者向けの詳細メッセージを含めて出力します。
- 設定ファイル読み込み時に、Instance.PROTOTYPE を渡します。
- ルーティング実行時に、ログにデバッグ情報を出力します。
- script type=“text/javascript” タグのラッパータグファイルを最小化します。
- link rel=“stylesheet” タグのラッパータグファイルを最小化します。
- エラーページにエラーの内容を表示します。
11.13.2.1. 概要¶
「実行環境」項目の主な違いは次の通りです。
種別 説明 単体テスト環境 JUnitなどを利用する場合を想定しています。パフォーマンスに関しては考慮しません。 結合テスト環境 IDEを使用したテスト環境などを想定しています。一般的に最も利用される環境を想定しています。必要最低限の動作環境です。 統合テスト環境 本来の実行環境(APサーバ)を使用した統合テスト環境を想定しています。カットオーバー直後等でもこの環境を利用することを想定しています。 運用環境 パフォーマンスを考慮した動作環境です。 注意
デバッグ情報の出力処理やキャッシュで生成される情報と違い、レスポンス面やエラー画面の表示などで大きな違いが発生します。本番の商用環境や運用環境では必ず、実行環境を「運用環境」に選択して、WARファイルを作成することを推奨します。コラム
「実行環境」項目の設定情報は、WEB-INF/classes/im_env.txtに以下のような文字列で定義されています。
単体テスト環境:ut 結合テスト環境:si 総合テスト環境:pt 運用環境:productionWARファイルをデプロイした後に一時的に実行環境を変更したい場合は、 上記ファイルの実行環境に関する文字列に変更して再起動することで、 WARファイル作成時と違う実行環境で動作させることもできますが、非推奨です。
11.13.2.2. 環境種別毎における各モジュールの動作仕様¶
環境種別毎のモジュールの動作仕様については次の通りです。
環境種別 対象モジュール 概要 単体テスト環境 コアモジュールスクリプト開発モデルスクリプト開発モデルテナント管理機能テナント管理機能認証機能IM Contents SearchIM Contents SearchUI基本モジュール 結合テスト環境 コアモジュールスクリプト開発モデルスクリプト開発モデルルーティング機能UI基本モジュール 総合テスト環境 コアモジュールコアモジュールルーティング機能UI基本モジュール 運用環境 コアモジュールUI基本モジュールUI基本モジュール
11.13.2.2.1. アクセスコンテキスト情報をログに出力します。¶
キャッシュされたアクセスコンテキストの取得、および、アクセスコンテキストをキャッシュに格納する際、アクセスコンテキスト情報を ライフサイクル共有情報に格納し、ログを出力します。アクセスコンテキスト情報とは、以下の2点です。・アクセスコンテキスト種別・有効判定の条件(実装ごとに出力される内容は異なります)ログ出力するには、jp.co.intra_mart.system.context.impl.cache.SessionContextCachePolicy のログレベルを TRACE にする必要があります。http://localhost:8080/imart/sample/tutorial/edit にアクセスした際のログ[TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.context.model.ClientContext (Condition = Use Cache: false) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.context.model.AccountContext (Condition = Use Cache: Thu Jul 11 23:59:59 JST 2013) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.user_context.model.UserContext (Condition = Use Cache: Thu Jul 11 23:59:59 JST 2013) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.authz.context.AuthzSubjectContext (Condition = Use Cache: Thu Jul 11 23:59:59 JST 2013) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.context.model.ClientContext (Condition = Use Cache: false) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.context.model.AccountContext (Condition = Use Cache: Thu Jul 11 23:59:59 JST 2013) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.user_context.model.UserContext (Condition = Use Cache: Thu Jul 11 23:59:59 JST 2013) [TRACE] j.c.i.s.c.i.c.SessionContextCachePolicy - [T.IWP.NO_CODE] Use Cach for interface jp.co.intra_mart.foundation.authz.context.AuthzSubjectContext (Condition = Use Cache: Thu Jul 11 23:59:59 JST 2013)
11.13.2.2.2. ベースURLが未設定の場合に警告ログを出力します。¶
「ベースURL」が未設定の場合に警告ログを出力します。BaseUrlProvider の実装が提供されている場合は出力されません。
11.13.2.2.3. Debug#browse 画面にコールスタック情報を表示します。¶
スクリプト開発モデルの Debug#browse 画面にコールスタック情報を表示します。また、Debug#printStackTrace メソッドを利用すると、コンソール上にコールスタック情報を出力します。このコールスタックの取得機能は、im-jssp-config.xml の trace 設定が有効の場合のみ利用可能です。
11.13.2.2.4. すべてのスクリプト開発モデルのプログラムをインタプリタモードで実行します。¶
すべてのスクリプト開発モデルの HTML と JavaScript をインタプリタモードで実行します。インタプリタモードではソースコードの変更がサーバを再起動することなく反映されます。「単体テスト環境」と「結合テスト環境」以外を選択した場合のモードは source-config.xml の設定値よって決まります。
11.13.2.2.5. 同一パスに対して異なる認可設定が存在している場合に警告ログを出力します。¶
同一パスに対して異なる認可設定をされているかどうかを確認し、異なる認可設定がされているパスが存在した場合、警告ログを出力します。具体的には、以下の警告ログが出力されます。[W_IWP_ROUTER_AUTHZ_00003] 認可設定が取得できませんでした。 path = {0} [W_IWP_ROUTER_AUTHZ_00004] 同一パスに対して異なる認可URIが設定されています。 path = {0} uri1 = {1}, uri2 = {2} [W_IWP_ROUTER_AUTHZ_00005] 同一パスに対して異なる認可アクションが設定されています。 path = {0} action1 = {1}, action2 = {2}
11.13.2.2.6. デバッグ情報を付与したキークラスを生成します。¶
認可設定をキャッシュする際のキークラスに対し、デバッグ情報を付与したキークラスを生成します。その他の場合は必要最低限の情報のみ保持するキークラスが生成されます。
11.13.2.2.7. CertificationServletUtil#validateCertificationConfirm()がtrueを返却します。¶
CertificationServletUtil#validateCertificationConfirm(HttpServletRequest, HttpServletResponse)は、常にtrueを返却します。これは、認証確認時、遷移先情報(リクエストパラメータ名:im_page_key)は、常に設定されているものとして動作することを意味します。これにより、認証確認画面に直接アクセスすることを可能とし、認証確認画面自体の動作を確認できます。
11.13.2.2.8. 検索実行エラー発生時に、開発者向けの詳細メッセージを含めて出力します。¶
検索実行エラー発生時に出力するメッセージに、開発者向けの詳細メッセージを含めて出力します。
11.13.2.2.9. 設定ファイル読み込み時に、Instance.PROTOTYPE を渡します。¶
ContentsSearch系の設定ファイル読み込み時に、ConfigurationLoader#load or #loadAll に渡す Instance(enum) を判別し渡します。環境種別が、 単体テスト の場合 : Instance.PROTOTYPE を渡します。環境種別が、 単体テスト以外 の場合 : Instance.SINGLETON を渡します。
11.13.2.2.10. ルーティング実行時に、ログにデバッグ情報を出力します。¶
ルーティング実行時に、ルーティング処理に要した時間をログに出力します。ログ出力するには、jp.co.intra_mart.system.router.DebugRouter のログレベルを DEBUG にする必要があります。[DEBUG] j.c.i.s.r.DebugRouter - [D.IWP.NO_CODE] dispatch: 148 [msec] [DEBUG] j.c.i.s.r.DebugRouter - [D.IWP.NO_CODE] dispatch: 7 [msec] [DEBUG] j.c.i.s.r.DebugRouter - [D.IWP.NO_CODE] no route: /imart/ui/libs/jquery-validation-1.9.0/jquery.validate.js 0 [msec] [DEBUG] j.c.i.s.r.DebugRouter - [D.IWP.NO_CODE] no route: /imart/ui/theme/im_theme_dropdown_blue/css/images/ui-icons_004276_256x240.png 0 [msec]
11.13.2.2.11. script type=“text/javascript” タグのラッパータグファイルを最小化します。¶
src に指定された文字列の最後の .js を .min.js に置換して href の文字列として使用します。「運用環境」以外を選択した場合、 src に指定された文字列をそのまま src の文字列として使用します。※ min.jsは、同名のjsファイルを圧縮した内容です。
11.13.2.2.12. link rel=“stylesheet” タグのラッパータグファイルを最小化します。¶
href に指定された文字列の最後の .css を .min.css に置換して href の文字列として使用します。「運用環境」以外を選択した場合、 href に指定された文字列をそのまま href の文字列として使用します。※ min.cssは、同名のcssファイルを圧縮した内容です。
11.13.2.2.13. エラーページにエラーの内容を表示します。¶
HTTPステータスコードが400番台と500番台のエラー画面で、発生した Exception のスタックトレースを toggle 形式で表示します。