在Web应用程序之间共享应用程序范围数据

时间:2013-11-14 12:41:22

标签: java spring tomcat servlets java-ee-6

我在下面使用 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 还会在群集环境中吗? 我的App2是一个Web应用程序,它暴露的Web服务很少,并且不包含任何UI。 App1和App2之间不得有任何直接通信。 App1必须在启动时在Application范围中放置一些值,之后App2应该在需要时访问应用程序作用域值。感谢名单

群集环境中是否有任何问题?我的方法是否正确?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果:

  1. 两个应用程序都在群集环境中
  2. 会话属性中的所有内容都是可序列化的
  3. 您的会话将持久保存群集共享的某些数据存储
  4. 然后,您的会话属性应该可以在所有服务器上使用。