2017-01-03 68 views
-1

我正在運行Jboss EAP 6.2服務器上託管的Wicket 6.x應用程序。Jboss中的Wicket應用程序:會話過期過快

web.xml文件包含:

<session-config> 
    <session-timeout>20</session-timeout> 
</session-config> 

這表明20分鐘的會話超時。但是,實際的超時時間遠遠更低。我並沒有把精確的時間安排好,但我可以告訴你,即使在5分鐘後,會議已經過期。當我刷新頁面時,它會被重新初始化,並且它的所有狀態都消失了。

我可以讓這個超時時間更長嗎?它是如何控制的?

回答

0

額外的測試後,原來的問題是EJB池的超時時間:

<pools> 
    <bean-instance-pools> 
     <strict-max-pool name="slsb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> 
     <strict-max-pool name="mdb-strict-max-pool" max-pool-size="20" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/> 
    </bean-instance-pools> 
</pools> 

更改值到20分鐘解決了這個問題

1

JBoss 6.x的默認http會話超時設置爲30分鐘。 正常情況下,正確設置web.xml應該覆蓋默認值。

嘗試直接在JBoss服務器連接器上訪問應用程序時測量會話超時。

https://hostname:8443/app_context_roothttp://hostname:8080/app_context_root

除非你自定義的端口,它應該是如上訪問。

如果您在JBoss之前有Apache HTTPD服務器,並且通過Apache代理訪問它,它將關閉會話,因爲它在Apache HTTPD中配置。 這同樣適用於任何F5負載平衡器,依此類推。