接上面的话题接着继续完善。为什么没接到上篇呢?原因很简单太长的文章不爱看!就像有人写了上千行的方法一样,不是逼得没办法谁爱看谁看,反正我不看。
期间我没有一次配置成功,从失败的开始说起,
1、准备jar包
注意:不同的tomcat版本(tomcat6,tomcat7)所需的包不一样,需要针对tomcat版本下载对应的包.
这是采用的最新稳定版1.6
首先我到官网:http://code.google.com/p/memcached-session-manager/下载了最新的jar
由于公司网络是用代理很多网站你懂的,上不去,后来从 https://github.com/magro/memcached-session-manager 下载其他的jar包,总之找了好久凑不去
2、配置
1. 将上面所提到的包全部拷贝到tomcat的lib下(两台tomcat都需要)
2. 修改每台tomcat的conf目录下得context.xml文件,在其中加入如下任意一段代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:localhost:11211" sticky="false" sessionBackupAsync="false" lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />
其中序列化有好几种方法,
- javolution序列化tomcat配置
- xstream序列化tomcat配置
- flexjson序列化tomcat配置
- kryo序列化tomcat配置
据说kryo序列化效率比较快,那还选啥。其实上面说的jar包包含了这几种,实际放到lib下的没有那么多包。最后我一共放了九个包,等会上图。
配置好了启动tomcat,然后报错,果然意料之中,报错意思缺少类de.javakaffee.kryoserializers.LocaleSerializer,
见怪不怪了,小问题,缺了就找呗,发现kryo-serializers包没有类,果断升级找kryo-serializers-0.11.jar。
再次启动测试报错java.lang.NoSuchMethodError: net.spy.memcached.MemcachedClient.
set
(Ljava
/lang/String
;ILjava
/lang/Object
;)Lnet
/spy/memcached/internal/OperationFuture
;。解决方法spymemcached-2.7.jar升级到spymemcached-2.8.4.jar.
再试启动中有信息
顺利完成。浏览器测试过重结果不一致啊,我就XXX了。
从上面的测试结果,给我提示果断替换tomcat统一用6.0.18版本,虽然开始用的6.0.37也是tomcat6,但是测试不成功,看来还是有区别的吗具体原因这里没有深入探究。
最后放上所有9个jar包截图
总之版本一直很关键。
附几个参考链接
http://www.cnblogs.com/interdrp/p/4096466.html
http://www.iteye.com/topic/1125301