Java Tomcat7 SESSIONID在应用redis RedisSessionManager后保持更改
我正在Ubuntu16.04中使用tomcat7和oracle-java8 我启动了两个不同的tomcat实例进行负载平衡,但默认行为是会话不能在它们之间共享 所以我转向使用RedisSessionManager的解决方案 在tomcatJava Tomcat7 SESSIONID在应用redis RedisSessionManager后保持更改,java,session,tomcat,redis,persistence,Java,Session,Tomcat,Redis,Persistence,我正在Ubuntu16.04中使用tomcat7和oracle-java8 我启动了两个不同的tomcat实例进行负载平衡,但默认行为是会话不能在它们之间共享 所以我转向使用RedisSessionManager的解决方案 在tomcatconf/context.xml文件中添加以下行之后(当然,我在lib目录中添加了依赖项jar): 然后启动一个tomcat实例 但是在那之后,服务器似乎再也无法保存会话了,并且在每个请求中返回了不同的Set Cookie头,因此即使只有一个tomcat实例
conf/context.xml
文件中添加以下行之后(当然,我在lib目录中添加了依赖项jar):
然后启动一个tomcat实例
但是在那之后,服务器似乎再也无法保存会话了,并且在每个请求中返回了不同的Set Cookie头,因此即使只有一个tomcat实例,登录也无法工作
如果我注释掉上面几行(在context.xml
文件中),会话将按预期工作
那么,使用RedissionManager有什么不对呢?我自己终于找到了答案:
com.orangefunction.tomcat.redissession.RedisSessionManager
不支持为会话超时设置-1
值,而默认设置支持
在我的例子中,我的originweb.xml
文件包含以下内容:
<session-config>
<session-timeout>-1</session-timeout>
<cookie-config>
<max-age>2592000</max-age>
</cookie-config>
</session-config>
希望这对那些有同样问题的人有所帮助。我自己终于找到了答案:
com.orangefunction.tomcat.redissession.RedisSessionManager
不支持为会话超时设置-1
值,而默认设置支持
在我的例子中,我的originweb.xml
文件包含以下内容:
<session-config>
<session-timeout>-1</session-timeout>
<cookie-config>
<max-age>2592000</max-age>
</cookie-config>
</session-config>
希望这对有同样问题的人有所帮助
<session-config>
<session-timeout>518400</session-timeout>
<cookie-config>
<max-age>2592000</max-age>
</cookie-config>
</session-config>