2

私は以下を使用しています:

  • 春3.1
  • Java EE 6(GlassFish 3.1.2)
  • プロジェクトビルドなどのMaven
  • ライブ展開用のAnt

DEV、UAT、TRAINING、PRODなど、さまざまな環境が稼働しています。トレーニング環境では、セッションのタイムアウトを8時間に延長するように要求されました。他のすべての環境では2時間です。私がやりたいのは、でプロパティプレースホルダーを使用することですweb.xml。しかし、私はこれが可能だとは思いません:

<session-config>
    <session-timeout>${session.timeout}</session-timeout>
</session-config>

私が考えた解決策は次のとおりです。

  1. Mavenフィルタリングを使用する-私は本当にこれをしたくありません。それは訓練のための別の戦争を意味するでしょう。
  2. トレーニングからセッションタイムアウトを削除し、web.xml8時間後にタイムアウトするようにGlassFishを構成します-すべての環境を純粋で同期したままにしておきたいので、これはあまり好きではありません。
  3. これを初期化コードで手動で設定します。うん。

<env>.propertiesWebアプリの構成にはファイルを使用していることに注意してください。プロパティファイルは、VM引数を使用して選択されます。

誰かが別のより良い解決策を考えることができますか?

よろしくお願いします、ムエル。

4

2 に答える 2

0

SOに関するこの質問を確認してください。2つの方法がありますが、よくわかりません-

  1. 環境ごとに異なる web.xml ファイルを用意し、対応する web.xml を使用して war ファイルをビルドできます。これは完全に可能です。

  2. HttpSessionListener上記のリンクに示すように、カスタムを使用できます。ハードコーディングされた値からセッションタイムアウトが設定されていますが、次のようにサーブレットからコンテキスト初期化パラメーターにアクセスしてみます

    Session().getServletContext().getInitParameter("paramName");
    

また、環境ごとに異なるセッション タイムアウト値を持つ init パラメータを定義します。このコードはテストしていないので、コンテキスト パラメータを取得できるかどうかはわかりません。

于 2012-07-05T09:50:20.437 に答える
0

初期化コードで設定できる場合は、春から取得できます。web.xml は最初に読み込まれるため、前処理はできません。

それでは、春からセッションタイムアウトをロードする戦争で展開される「手動初期化コード」を作成してみませんか。

于 2012-07-05T09:33:16.660 に答える