【问题标题】:HttpSession Object becoming null between sessions when using tomcat9 + Memcache使用tomcat9 + Memcache时,会话之间的HttpSession对象变为空
【发布时间】:2024-05-22 22:30:01
【问题描述】:

我们有一个托管在 tomcat 8 中的 java web 应用程序。对于会话管理,我们一直在使用 memcache,它维护基于非粘性会话。这一直运行良好,没有任何问题。

现在需要将 tomcat 从 8 升级到 tomcat 9,并且使用 tomcat 9 所需的 jar 升级已经完成。升级后,我们在应用程序中面临会话变为空的问题。与会话关联的应用程序中的某些链接工作正常,其中一些在单击时让我退出会话。检查日志,我看到会话对象为空。

memcached jar 用作 tomcat 9 的一部分并复制到 tomcat9/lib 下 memcache-session-manager-2.3.2 memcache-session-manager-tc9-2.3.2 抛弃-1.1.jar spymemcached-2.12.0 http-core-4.3 http-core-nio-4.3

我们在这个用例中使用了第 3 方序列化,它们也被复制到了 tomcat lib 文件夹中

kryo-3.0.3.jar kryo-serializers-0.37.jar minlog-1.3.0.jar msm-kryo-serializer-1.9.3.jar objenesis-2.1.jar protobuf-java-2.6.1.jar reflectasm-1.10.1.jar

有了这些 jars ,我就可以毫无问题地看到 tomcat 启动了。

 **<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
        memcachedNodes="n1:ip:port"
        lockingMode="auto"
        sticky="false"
        requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
        sessionBackupAsync= "false"
        sessionBackupTimeout= "100"
        copyCollectionsForSerialization="false"
        transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>**

按照以下链接在我的应用程序中设置 memcache 配置。

https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration

如果我在配置中遗漏任何内容,请帮助我。

谢谢 普雷迪普

【问题讨论】:

    标签: java spring memcached tomcat9


    【解决方案1】:

    已通过从 context.xml 中删除参数 **requesturiignore 模式 ** 解决了此问题,因为这会创建不同的会话。

    【讨论】:

      最近更新 更多