0

私は Web アプリケーションの作成に比較的慣れていないので、ご容赦ください。

Tomcat でホストしたいレガシー アプリケーションがあります。このアプリケーションは、起動に時間がかかり (10 秒?)、多くのリソースを消費します。このアプリケーションのインスタンスを常に 1 つだけ実行したいと考えています。

任意の時点でセッションが 0 または 1 になるように tomcat をセットアップしたいと思います。ユーザーが初めて接続すると、レガシー アプリのインスタンスを起動するセッションが作成され、それ以降のユーザーは同じセッションを使用します。

Tomcat のデフォルトの動作は、ユーザーごとに新しいセッションを作成することですが、これはうまくいきません。

最初のユーザーによって作成されたセッションが後続のユーザーによって使用されるように tomcat をセットアップする方法について教えてください。

4

2 に答える 2

1

別のオプションは、独自の session Managerを実装することです。セッション マネージャーは、新しいセッションの作成、セッションの検索などを担当し、 で設定されserver.xmlます。

于 2012-12-06T14:44:16.340 に答える
0

単一のインスタンスを維持する HttpSessionListener を実装することになりました。

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.*;
import javax.servlet.http.*;

public class SessionListener implements HttpSessionListener {

   private static HttpSession _session = null;

   public static HttpSession GetSession()
   {
      return _session;
   }

   @Override
   public void sessionCreated(HttpSessionEvent arg0) {
      if (_session == null)
      {
         System.out.println("setting session");
         _session = arg0.getSession();
      }
   }

   @Override
   public void sessionDestroyed(HttpSessionEvent arg0) {
      System.out.println("Clearing session");
      _session = null;
  } 
}
于 2012-12-06T15:21:01.320 に答える