0

以下を使用して、App2のApp1によって設定されたセッション データにアクセスしています。

App1 で:

ServletContext sctx = ((HttpServletRequest) request).getSession().getServletContext();
    String testStr = (String) sctx.getAttribute("attr");
    if(testStr == null){
        testStr = "test";
        sctx.setAttribute("attr", testStr);
    }

App2で

以下のようにセッション値を取得します。

ServletContext sctx = ((HttpServletRequest) request).getSession().getServletContext().getContext("/app1");
    String testStr = (String) sctx.getAttribute("attr");
    System.out.println("the value which set in first app: " + testStr);

実は私のApp2 will be in cluster environment. この場合、 App1もクラスター環境にする必要がありますか? My App2 は、Web サービスがほとんど公開されておらず、UI が含まれていない Web アプリケーションです。App1 と App2 の間に直接通信があってはなりません。App1 は起動時に Application スコープに何らかの値を設定する必要があり、その後 App2 は必要に応じてアプリケーション スコープの値にアクセスする必要があります。ありがとう

クラスタ環境で問題はありますか? 私のアプローチは正しいですか?

ありがとう!

4

1 に答える 1

0

もしも:

  1. 両方のアプリケーションがクラスター化された環境にある
  2. セッション属性のすべてがシリアライズ可能です
  3. あなたのセッションは、クラスターによって共有されている一部のデータストアを永続化しています

次に、セッション属性がすべてのサーバーで利用できるようになります。

于 2013-11-14T13:07:07.090 に答える