2014-09-22 26 views
0

我在使用WildFly 8.x時也遇到了一個非常奇怪的行爲(同樣在8.1和8.0上進行了測試)。如果我將WAR部署爲ROOT(在jboss-web.xml中將'/'設置爲context-root),我的JAX-RS資源類將具有不同的會話ID(每個資源類將具有唯一的會話ID)。但事實上,如果我設置了除'/'之外的其他任何內容作爲上下文根目錄,則一切都按我原本的預期工作(每個JAX-RS資源類共享同一個會話)。 我知道REST服務是無狀態的,我不必擔心會話,但我很好奇爲什麼它的行爲如此。有沒有人有任何想法?JAX-RS資源的不同會話ID

謝謝!

下面是一個示例最小項目,您可以重現此問題:https://github.com/aberkes/cdi-sessionscoped-bean-demo

回答

1

的想法是,在默認情況下,如果你部署到ROOT,JBoss的不使用固定的cookie路徑參數。這是爲了這種情況,當你有其他應用程序運行在不同的子文件夾中,並需要他們自己的獨立會話。 要改變這種行爲,你可以在你的web.xml使用

<session-config> 
<cookie-config> 
<path>/</path> 
</cookie-config> 
</session-config> 

參數。然後所有jsessions將被綁定到根路徑。

+0

就是這樣!我懷疑這應該是一些(錯誤的)配置問題。非常感謝你! :) – aberkes 2014-09-28 19:05:38