session服务器的2种方式:
第一种是在项目中的代码中修改
第二种是修改tomcat中的源码,把存放session的地方更改到redis服务器上
本文使用的是第二种方法,因为这样不会对项目进行修改。并且开发人员获取session的方式和以前相同
*本帖会从tomcat的导入eclipse开始,如果只是想使用,可以直接跳到结尾部分。
一、编译tomcat源码
1.tomcat是由ant编译而成的,所以需要下载ant
ant下载地址:http://ant.apache.org/bindownload.cgi
下载后添加环境变量ANT_HOME,PATH
使用然后进入cmd下运行 ant -version查看是否安装成功
2.下载tomcat源码
tomcat下载地址:http://tomcat.apache.org/
进入到tomcat根目录进行源码编译(该编译过程可能会受网络影响)
ant download
ant
依赖包的下载会下载到默认的/usr/share/java目录下
修改ant下载依赖包路径修改,需要拷贝将“build.properties.default” 修改为 “build.properties”并且修改其中base.path后面的路径
编译后会在根目录下产生output文件夹,内为编译后的class文件
附:tomcat8源码(内涵编译以后的文件及下载的包文件):链接: http://pan.baidu.com/s/1bpaew3t 密码: vrhz
二、导入tomcat源码
我这里使用的是eclipse
1.创建一个java项目
2.选择File - > import -> File System,在From directory中选择tomcat源码包中的java和test两个文件夹,在Into folder中选择我们刚新建的Tomcat8项目,Finish,然后记得将这两个文件夹标记为source code(怎么标记?右键选择者文件夹 -> Build Path -> Use as Source Folder)。
3.引入jar包,所需jar包在编译时下载的依赖包内都能找到。
4.拷贝编译后产生的output/build下的conf和lib到项目根目录中(webapps可选)
5.找到Bootstrap.java类运行tomcat
三、修改tomcat自带的session存储方式(本例为tomcat8下)
本例源码以及jar包地址:链接: http://pan.baidu.com/s/1hsumYaS 密码: hi1a
四、实际案例
把之前编译好的tomcat-redis-session-manager.jar和两个依赖包jedis-2.7.2.jar,commons-pool2-2.0.jar放入正式tomcat,lib目录下
修改conf目录下的context.xml文件
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost" <!-- optional: defaults to "localhost" -->
port="6379" <!-- optional: defaults to "6379" -->
database="0" <!-- optional: defaults to "0" -->
maxInactiveInterval="60" <!-- optional: defaults to "60" (in seconds) -->
sessionPersistPolicies="PERSIST_POLICY_1,PERSIST_POLICY_2,.." <!-- optional -->
sentinelMaster="SentinelMasterName" <!-- optional -->
sentinels="sentinel-host-1:port,sentinel-host-2:port,.." <!-- optional --> />
然后启动tomcat服务器。你就会看到你的session已经存储到你配置的redis服务器中。