tomcat session redis支持
1.去官网下载工程,此工程使用gradle方式管理
https://github.com/jcoleman/tomcat-redis-session-manager
2.下载完成后,使用gradle build进行编译,编译时,如需要修改编译版本,请修改bukld.gradle文件里的dependencies,如编译过程中,出现需要sign错误,请注释build.gradle里的signing片断
3.编译完成后,在build/libs目录下会出现需要的目标jar文件
4.在build.gradle里加入
task copyJars(type: Copy) { from configurations.runtime into 'dist’ }
并重新执行gradle copyJars,这样就将依赖的文件copy到dist目录下了
5.将所需的tomcat-session-redis.jar及dist目录下的jedis.jar,common-pool2.jar拷贝到tomcat/lib目录下
6.修改tomcat/conf/context.xml,将从README.markdown的配置文件复制到里面,并修改其参数值,如redis有密码,添加password参数项即可,demo如下:
<Valveclassname="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Managerclassname="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="你的服务器地址"
port="6379"
password="你的密码"
database="使用的数据库INDEX"
maxInactiveInterval="60"/>
7.如需要修改session的周期,需要修改tomcat/conf/web.xml里的session-config,因为redis里的expire使用的单位是秒,而TOMCAT里的单位是分,所以在集成过redis后,这里的单位也就变成秒了,我需要session的超时是30分钟,则是30*60
TOMCAT6在JDK6环境下的支持,默认情况下,gradle只支持JDK7的编译,所以,如果您的服务器使用的JDK环境是JDK6的话,那么,请使用JDK6的环境进行编译,在JDK6下,会报一些错误,这些都是使用了JDK7的语法而产生的,或者是因为tomcat里,没有STATE这个东西,没有关系,修改一下就OK了,不用修改里面的逻辑,只修改一下用法就OK了,里面的start和stop方法重新比着里面的源码写一下就好了,然后重新编译,这样tomcat-session-redis.jar就出来了,我是一步一步写过来的,有什么问题可以跟我交流
附件3个文件
demo.zip是我自己写的web工程,用来自己编译tomcat-redis-session-manaager-master-2.0.0.jar的
master.zip是从官网下来的gradle工程,如果您需要自己编译的话,可以去官网下载,也可以从这里下,不过版本可能会有点老
tomcat-redis-session-manaager-master-2.0.0.jar就是我花了小半天的成果