设置ear中war之间session共享

设置ear中war之间session共享

由J2EE Servlet规范中,可以知道,正常情况下war之间session是彼此独立的,不可以共享的。
但是现在大部分J2EE服务器,都实现了EAR中war之间的session共享,如weblogic(>=9)、websphere。

设置weblogic的EAR中war之间session共享有下面两种方法:

1:设置EAR中的weblogic-application.xml文件,加入如下片段:

<wls:session-descriptor>

wls:persistent-store-typememory</wls:persistent-store-type>
wls:sharing-enabledtrue</wls:sharing-enabled>
</wls:session-descriptor>

整个weblogic-application.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<wls:weblogic-web-app xmlns:wls=“http://www.bea.com/ns/weblogic/90” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd”>
wls:weblogic-version10.0</wls:weblogic-version>
wls:context-roottestEARweb2</wls:context-root>
wls:session-descriptor
wls:persistent-store-typememory</wls:persistent-store-type>
wls:sharing-enabledtrue</wls:sharing-enabled>
</wls:session-descriptor>
</wls:weblogic-web-app>

2.设置需要共享session的war内的weblogic.xml文件,例如testEAR内有两个war,testEARweb1和testEARweb2,想让这两个war之间session共享,
则需要设置这两个war里面的weblogic.xml文件,同样,加入下面片段即可:
wls:session-descriptor
wls:persistent-store-typememory</wls:persistent-store-type>
wls:sharing-enabledtrue</wls:sharing-enabled>
</wls:session-descriptor>
设置后testEARweb1的weblogic.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<wls:weblogic-web-app xmlns:wls=“http://www.bea.com/ns/weblogic/90” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd”>
wls:weblogic-version10.0</wls:weblogic-version>
wls:context-roottestEARweb1</wls:context-root>
wls:session-descriptor
wls:persistent-store-typememory</wls:persistent-store-type>
wls:sharing-enabledtrue</wls:sharing-enabled>
</wls:session-descriptor>
</wls:weblogic-web-app>

testEARweb2的weblogic.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<wls:weblogic-web-app xmlns:wls=“http://www.bea.com/ns/weblogic/90” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd”>
wls:weblogic-version10.0</wls:weblogic-version>
wls:context-roottestEARweb2</wls:context-root>
wls:session-descriptor
wls:persistent-store-typememory</wls:persistent-store-type>
wls:sharing-enabledtrue</wls:sharing-enabled>
</wls:session-descriptor>
</wls:weblogic-web-app>

扫描二维码关注公众号,回复: 4719729 查看本文章

这样,EAR内的war之间就可以共享session了。

对于WAS,需要设置ibm-application-ext.xmi文件,

<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”>

其中sharedSessionContext=“true”,就是说明要开启共享session。

猜你喜欢

转载自blog.csdn.net/qq_17233521/article/details/85450662