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就是我花了小半天的成果

相关推荐