2010-02-12 64 views
4

在Tomcat上使用Spring構建JSF應用程序。目標是網絡農場,客戶要求我們設計我們的應用程序,以便在不依賴LB中的「粘性會話」的情況下進行負載平衡。網絡農場中的jsf會話

在.NET中,您可以將會話存儲配置爲SQL Server或ASP.NET狀態服務。 Java世界有什麼替代方案?例如,是否有標準的方法來插入指向MySQL數據庫的不同會話狀態存儲? Spring是否提供任何鉤子?

回答

2

這是servletcontainer特定的,在這種情況下是Tomcat。 servletcontainer是管理和提供會話的servletcontainer。所以JSF和Spring在這裏沒有任何關係。他們只是通過request.getSession()等透明地從servletcontainer中獲取它。

在Tomcat中,你可以提供一個custom session manager implementation web應用程序的Context

<Context ...> 
    <Manager className="com.example.SessionManager"> 

..where com.example.SessionManager工具org.apache.catalina.Manager按照其合同。其中,您可以編寫代碼以通過數據庫備份會話。

但是,根據您的特定需求還有其他選擇,您可以選擇Tomcat的內置集羣/會話複製功能,而不是使用自定義管理器/數據庫重新創建它。在Tomcat Clustering/Session Replication HOW-TO閱讀更多關於它的信息。

+0

事實證明,我們只在開發中使用tomcat,生產站點正在使用websphere,它有自己的實現(http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp ?主題=/com.ibm.websphere.v4.doc/wass_content/06061105.html)。但瞭解這是特定於容器的就足以爲部署提供建議。謝謝! – roufamatic 2010-02-14 17:20:21

+1

不客氣。知道Websphere真正使用Tomcat「底層」是很有用的。 – BalusC 2010-02-14 23:08:41