但多个项目需要共享session时,将多个项目合并为1个ear包,每个项目为一个war包,并按如下配置后,发布到was6.1中就可以实现共享session了。
用eclipse导出ear包是,在包中已生成META-INF/application.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <application id="Application_ID" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> <display-name>web_all</display-name> <module id="myeclipse.1330415776234"> <web> <web-uri>web1.war</web-uri> <context-root>/web1</context-root> </web> </module> <module id="myeclipse.1330415810375"> <web> <web-uri>web2.war</web-uri> <context-root>/web2</context-root> </web> </module> </application>
然后手工在META-INF/文件夹下添加如下两个配置文件:
ibm-application-bnd.xmi
<?xml version="1.0" encoding="UTF-8"?> <applicationbnd:ApplicationBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:applicationbnd="applicationbnd.xmi" xmlns:common="common.xmi" xmlns:application="application.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="Application_ID_Bnd"> <appName xsi:nil="true"/> <application href="META-INF/application.xml#Application_ID"/> </applicationbnd:ApplicationBinding>
<?xml version="1.0" encoding="UTF-8"?> <applicationext:ApplicationExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:applicationext="applicationext.xmi" xmlns:application="application.xmi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:id="Application_ID_Ext" sharedSessionContext="true"> <application href="META-INF/application.xml#Application_ID"/> </applicationext:ApplicationExtension>
(was6.1可以在IBM网站中下载was_cd_6103_trial_express_windows_ia32.zip),最好在win2003中测试,本人使用virtualbox安装的一个win2003。
部署了一个web_all其中包含we1网站和web2网站
在web1的login.jsp登陆,后台把用户名和密码写入session
点击登陆后保存到session,并在页面中读取:
访问web2看是否能获取session
实验成功!项目下载地址http://download.csdn.net/detail/tomatozq/4098351