weblogic上的会话问题

时间:2010-12-16 12:33:19

标签: java session weblogic

我遇到了一个与weblogic有关的奇怪问题。我们的一个工作站托管了2个weblogic实例。问题是当我登录其中一个时,另一个会话会自动过期,反之亦然。它能是什么?如何处理这个问题?

2 个答案:

答案 0 :(得分:10)

如果会话ID存储在客户端的cookie中,请确保您的weblogic实例上的cookie名称不同。

更改Cookie名称的一种方法是在您的Web应用程序中创建一个名为 weblogic.xml 的文件(或者在您的EAR中创建 weblogic-application.xml ,只需替换标记 weblogic-web-app weblogic-application ),其中包含以下内容(根据您的需要自定义Cookie名称):

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90">
    <session-descriptor>
        <cookie-name>MyCookieName</cookie-name>
    </session-descriptor>
</weblogic-web-app>

答案 1 :(得分:1)

因为它们在同一台机器上运行,所以您的浏览器会看到一个主机(即localhost)。由于java webapps的默认会话cookie是JSESSIONID,并且两者都使用这个cookiename,因此它们将相互覆盖。

解决方案是通过启动IE两次打开2个IE浏览器窗口。在这种情况下,他们将获得自己的会话cookie。不幸的是,这对Firefox和Chrome不起作用。

nawre提到了另一个解决方案,为2个webapps提供了不同的会话cookie名称。