使用tomcat9+Memcache时,java HttpSession对象在会话之间变为null
我们有一个java web应用程序,它托管在Tomcat8中。对于会话管理,我们一直使用memcache来维护基于非粘性的会话。这一直运作良好,没有任何问题
现在需要将tomcat从8升级到tomcat 9,并且已经为tomcat 9升级了必要的JAR。升级之后,我们在应用程序中面临一个问题,会话将变为null。应用程序中与会话相关联的一些链接工作正常,单击其中一些链接会使我注销会话。检查日志,我看到会话对象为null
memcached JAR用作tomcat9的一部分,并在tomcat9/lib下复制 memcache-session-manager-2.3.2 memcache-session-manager-tc9-2.3.2 抛弃-1.1。罐子 SpymeCached-2.12.0 http-core-4.3 http-core-nio-4.3
我们在这个用例中使用第三方序列化,它们也被复制到tomcat lib文件夹中
kryo-3.0.3。罐子 kryo-serializers-0.37。罐子 minlog-1.3.0。罐子 msm-kryo-serializer-1.9.3。罐子 objenesis-2.1。罐子 protobuf-java-2.6.1。罐子 反射ASM-1.10.1。jar
有了这些JAR,我可以看到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
如果配置中缺少任何内容,请帮助我
谢谢 普拉迪普
# 1 楼答案
已通过从上下文中删除参数**requesturiignore模式**解决了此问题。xml,因为它正在创建不同的会话