我有需要使用一個單獨共享信息的兩個Tomcat Web應用程序。我已經通過將jared類放在tomcat公共目錄中來實現它的工作。每個webapp然後獲得單身人士的相同副本。我想要做的就是在eclipse中整合這個行爲。我希望通用類是一個單獨的項目,每次在eclipse中啓動tomcat服務器時,它都會被整合到tomcat的通用類加載器中。任何人都知道如何配置eclipse來做到這一點?配置項目,使最終在tomcat「共同」類加載器
回答
我設法使它工作。這是我做的:
- 在eclipse工作區中創建了一個
common
項目。 - 創建了兩個Web應用程序,分別稱爲
first
和second
,它們應共享common
項目。
當創建web應用程序時,使用tomcat配置創建Servers
項目。
- 變化
catalina.properties
的服務器項目中,並添加行shared.loader=/path-to-workspace/common/bin
。
這對於開發非常有效。每次創建新的構建時,所有內容都是同步的。部署您需要將common
項目轉換爲common.jar
並將其放入${catalina.home}/lib
。
可能是一種可能性可能是extend the tomcat class loader爲了使這種類裝載器在other directories than WEB-INF/lib
搜索,這個由:
擴展
org.apache.catalina.loader.WebappClassLoader
並覆蓋findClassInternal
方法。配置Tomcat使用擴展類加載器。
這是適當的Web應用程序配置文件中有以下元素Tomcat的conf/Catalina/hostname
路徑下進行:...
然後在Eclipse中,你可以設置你的共同項目上「構建路徑中的必需項目」,這使其成爲類路徑的一部分。
這意味着您的擴展類加載器必須能夠尋找其他CLASSE:
- 無論是在一個固定的預定義的路徑
- 或在classpath中預先定義的路徑。
沒有測試過自己,但可能會給你在這個問題上的領先。
一個更簡單的解決方案是在評論提出noselasd,採取的Tomcat GlobalNamingResources Component的優勢。
當您在Eclipse中創建一個新的Tomcat服務器,新服務器嚮導假定它是不安全的影響Tomcat安裝這個新的服務器將使用的當前行爲。
WTP能夠避免使用Tomcat的從一個安裝運行多個服務器實例的能力影響安裝了Tomcat的行爲。因此,對於每一個新的Tomcat默認配置斷絕創建將與在嚮導中選擇Tomcat的運行相關聯的Tomcat的安裝新的服務器實例。
如果你希望在Eclipse中新的Tomcat服務器運行相同的情況下,在Tomcat安裝運行默認的批處理文件,你可能會感到驚訝時Eclipse中的Tomcat服務器沒有按預期的行爲。Tomcat服務器配置是可以改變的,以免它運行相同的實例作爲Tomcat安裝。
在這裏你會找到如何modify the server.xml in WTP。
- 1. 無法加載Tomcat服務器配置
- 2. tomcat類加載器錯誤?
- 3. 使用類加載器獲取不同項目中的資源
- 4. 本地磁盤上的映像未在Tomcat項目配置中加載
- 5. 如何使tomcat 8使用與戰爭相同的類加載器加載jar?
- 6. 在不同項目之間共享配置的最佳方式是什麼?
- 7. 在適配器onBindViewHolder中的位置始終返回最後一個項目
- 8. 類加載器和與Apache Tomcat共享.jar文件
- 9. 帶有嵌入式Tomcat的共享類加載器8
- 10. Django項目模板加載器設置
- 11. 如何在JUnit中使用Maven項目中的自定義類加載器加載相同類兩次
- 12. 添加項目到最終名單
- 13. 跨項目共享休眠配置的最佳方式
- 14. Eclipse&Tomcat - 類加載
- 15. 跨多個項目共享log4net配置
- 16. 加載配置項CI
- 17. 錯誤配置焊接2.0項目和Tomcat 7的容器
- 18. 最終的本科項目「負載平衡服務器」?
- 19. 如何在SBT(Play)多項目中使用共享配置?
- 20. 類加載器問題Tomcat 6 javagent
- 21. Tomcat類加載器不工作
- 22. 運行Eclipse項目使用Tomcat 7內置在Tomcat 6
- 23. 在運行時加載來自不同項目的配置文件
- 24. 使用Xcode項目加載C共享庫目標C
- 25. 如何在ember.js項目中加載配置文件?
- 26. 使用不同的加載器在JVM中加載兩次類
- 27. 靜態最終的和多類加載器
- 28. 在Treeview中加載類別和項目
- 29. 如何使用AspectJ和Tomcat配置加載時織入?
- 30. java的公共靜態最終目標
根本不需要這麼介入。 Tomcat具有服務器範圍的設置,您可以在server.xml中定義自己的全局資源,這些資源可以與所有的webapps共享。 http://tomcat.apache.org/tomcat-5.5-doc/config/globalresources.html你可以使用你自己的類,而不是像在例子中那樣使用Integer。但我不知道如何在Eclipse中使用server.xml和全局lib /目錄。 – nos 2009-07-05 00:40:16