我已經寫了一個使用java,spring和tomcat8作爲服務器的web應用程序,現在我想寫其他的,但是這個必須與之前的交互。它必須共享數據庫和會話中的一些數據(我的意思是如果用戶在一個應用程序中登錄,他不需要在其他應用程序中登錄)。什麼是實施這個最好的方法?兩個共享數據和會話的webapps
1
A
回答
0
有幾種方法可以解決這個問題。 Tomcat支持集羣請參閱:https://tomcat.apache.org/tomcat-9.0-doc/cluster-howto.html 但是,如Dimitrisli已經寫過的,查看spring-session可能是最簡單的解決方案(請參閱:http://projects.spring.io/spring-session/)。
我在我的一個項目中使用它,它工作的很好,但你必須知道,現在默認的序列化方案是「ObjecStream」,這是常規的Java序列化。因此,您無法在要加入會話的服務器上使用不同版本的類。這會導致反序列化異常。但我很確定,如果你使用tomcat/jboss7glassfish/etc可能會出現同樣的問題。集羣。
如果您希望在服務部署中免費,您可以使用其中一種集羣解決方案,並且只存儲必要的最少信息,如sessionID,然後使用類似redis或您希望存儲的任何DB解決方案會話相關數據採用更「類進化」的友好格式,例如json。這會給你帶來更多的工作,但也更靈活。
0
這是相當廣泛的,但一般來說,您只需爲兩個應用程序使用相同的數據庫配置,並且可以使用會話複製來共享服務器之間的會話。 Tomcat具有一些內置功能,但您還應該考慮Spring Session,它掛鉤到servlet篩選器鏈中,以跨平臺樣式將會話外部化。
0
會議集羣有幾種解決方案,但是由於您在Spring生態系統中,請查看新推出的Spring Session project,這使得此任務變得更容易,同時也是webapp提供程序不可知論者。
0
通常不建議共享會話,數據庫共享使用JNDI並獲取對象。如果要在您的案例中處理登錄,請使用Single SignON。
相關問題
- 1. 在兩個webapps之間共享Ehcache
- 2. 兩個域之間的會話共享
- 3. Jetty中不同webapps之間的會話共享
- 4. 在Jetty 8中的webapps之間共享會話
- 5. 共享會話
- 6. 共享會話
- 7. ASP3和ASP.NET會話共享
- 8. WCF和ASP.NET會話共享
- 9. Flash和php會話共享?
- 10. BrowserSync共享會話
- 11. PHP會話共享
- 12. 共享JVM會話
- 13. 共享會話和使用數據庫(MySQL的最好)
- 14. 如何在同一個tomcat下共享存儲在不同webapps會話中的數據
- 15. 共享兩個班級的數據
- 16. 具有SSL和共享會話的Haproxy
- 17. 的Node.js和PHP會話共享
- 18. PHP和Node.js的共享會話標識
- 19. 應用程序和共享會話之間的共享DLL
- 20. QWebView與多個幀/頁共享相同的會話數據
- 21. PHP的ASP共享會話
- 22. 會話共享的標籤
- 23. 在ASP.NET和PHP之間共享會話數據
- 24. 在Rails和PHP之間共享會話數據
- 25. 在Rails和Node之間共享會話數據?
- 26. 在Zend Framework v1中的兩個系統之間共享會話
- 27. 如何在兩個不同的域中共享PHP會話
- 28. 兩個CodeIgniter應用程序之間的會話共享
- 29. 如何通過Cake的數據庫會話處理在兩個域之間共享會話?
- 30. 在兩個類之間共享數據
看看http://www.josso.org/可能是值得的。單點登錄。 – Anirudh