我们有一个Java Web应用程序托管在tomcat 8中。对于会话管理,我们一直在使用memcache来维护基于非粘性会话。一直没有任何问题。
现在需要将tomcat从8升级到tomcat 9,并且已经完成了对tomcat 9的必要jar的升级。升级后,我们在应用程序中面临一个会话变为空的问题。与会话相关联的应用程序中的某些链接可以正常工作,单击某些链接会使我退出会话。检查日志,我看到会话对象为空。
memcached jar用作tomcat 9的一部分,并复制到tomcat9 / lib下memcache-session-manager-2.3.2memcache-session-manager-tc9-2.3.2jettison-1.1.jarspymemcached-2.12.0http-core-4.3http-core-nio-4.3
我们在此用例中使用第三者序列化,它们也被复制到tomcat lib文件夹中
kryo-3.0.3.jarkryo-serializers-0.37.jarminlog-1.3.0.jarmsm-kryo-serializer-1.9.3.jarobjenesis-2.1.jarprotobuf-java-2.6.1.jarReflectionasm-1.10.1.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"/>**
以下链接用于在我的应用程序中设置内存缓存配置。
https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
如果我在配置中缺少任何内容,请帮助我。
谢谢Pradeep
已在创建不同的会话时通过从context.xml中删除参数** requesturiignore模式**解决了此问题。