配置完了之后才发现很简单,主要是配置tomcat目录下的conf/server.xml文件,只需要在<host>下加入以下代码:
xml片段
注意receiver节点下的port 端口,两个tomcat端口不能相同
插入后代码的完整server.xml
由于我做的session复制是在同一台机器上做的,所以需要改端口号,将两个tomcat里面的,Server,Connector,Connector AJP端口改为不一样的就行了,防止端口冲突。
在自己的项目中的web.xml文件</web-app>标签前面加上<distributable/>,
windows默认情况下是开通组播服务的,但是linux默认情况下并没有开通,可以通过指令打开route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0,
如果需要服务器启动时即开通组播需在/etc/sysconfig/static-routes文件内加入eht0 net 224.0.0.0 netmask 240.0.0.0。具体组播概念请查阅CCNP相关内容。
可以通过netstate -g 来查看组播状态,也可以在route -e 命令中看到
下面开始测试:
写一个测试工程test,页面如下index.jsp
1.在浏览器中输入http://192.168.7.153:8080/test/index.jsp
然后输入名称和值提交
2.在当前浏览器中输入http://192.168.7.153:8081/test/index.jsp
可以看到刚刚我们在8080这个tomcat提交的东西说明,已经配置成功。
(注意:必须是同一个窗口)
20110623补充:后来在项目中使用session的时候报异常如下:
java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
这是由于session存入的对象不可以序列化,只需要实现Serializable接口即可
利用msm+tomcat6管理session可以查看:http://code.google.com/p/testcq/wiki/MemcacheSessionShare