2012-11-02 163 views
0

我已经配置了http://community.jboss.org/wiki/HAWebSessionsviaDatabasePersistence以及其他人提出的解决方案,比如使用file和db存储在context.xml中配置Manager。但在JBoss-6.0.0中.Final根本不起作用。可能是一个错误?JBoss6不会持久会话

我已经完成了多次测试,并且在所有测试中会话都正确存储在配置的持久性中。但是,如果我重新部署应用程序或重新启动JBoss服务器,它将忽略持久会话,并要求我使用新登录,而不是重复使用前一个。我已检查SessionID存储在会话持久性中,并且浏览器正在发送正确的cookie。

我附加了JBoss-6.0.0.Final的测试用例。它被配置为http://community.jboss.org/wiki/HAWebSessionsviaDatabasePersistence

这一行简单地添加到该文件jboss-6.0.0.Final/server/default/data/hypersonic/localDB.script(你可以用你自己的MySQL数据源,如果你想)

CREATE TABLE httpsessions (app VARCHAR(255) NOT NULL, id VARCHAR(255) NOT NULL, fullId VARCHAR(255) NOT NULL, creationtime BIGINT NOT NULL, maxinactive BIGINT NOT NULL, version INT NOT NULL, lastaccess BIGINT NOT NULL, isnew CHAR(1) NOT NULL, valid CHAR(1) NOT NULL, metadata VARBINARY NULL, attributes LONGVARBINARY NOT NULL, CONSTRAINT app_id PRIMARY KEY (app, id)) 

然后,部署应用程序并转到localhost:8080/web在登录表单中输入credentials:user:password如果suecssfull登录,您将得到一个'ok'(请参阅index.html)然后,您可以看到会话存储在数据库中:

$ cat jboss-6.0.0.Final/server/default/data/hypersonic/localDB.log 

您将得到som ethig这样的:

... 
DELETE FROM HTTPSESSIONS WHERE APP='/web' AND ID='vIUYhSZDkw7fjCnEealRFA__' 
INSERT INTO HTTPSESSIONS VALUES('/web','vIUYhSZDkw7fjCnEealRFA__','vIUYhSZDkw7fjCnEealRFA__',1351177671379,1800,9,1351178495217,'0... 
COMMIT 

如果使用重新部署应用程序:

$ touch jboss-6.0.0.Final/server/default/deploy/test.ear/META-INF/application.xml 

,然后重新加载本地主机上浏览器:8080 /网络,系统会提示您再次输入用户名/密码,甚至会话ID已被存储。您也可以使用本机jbossweb.sar/context.xml配置获得此行为。

如果我失去了一些配置或真的是一个错误,任何人都可以说我吗?我在几种配置之间做了很多排列,但总是得到相同的结果。

我把一个链接与测试情况,因为我不知道如何将它连接到论坛:

http://kcy.me/bww8

问候。

回答