Duffymo關於不放罐子的指令支持在您的危險中被忽略。
在一些額外的細節:
庫放入您的WEB-INF/lib目錄是便攜性和一致性的最佳做法,因爲它堅持創造自給自足和分配網絡檔案館的標準條款,但您需要密切關注類加載聲明,您將其放入jboss-web.xml。
假設一個簡單的場景沒有的類加載聲明和一個虛構的example.jar:
- 如果你把example.jar在WEB-INF/lib目錄和它確實不是也存在於jboss // lib,然後example.jar只對特定的WAR可見。
- 如果你把example.jar在WEB-INF/lib目錄和它確實也存在於的JBoss // LIB,在WEB-INF /實例LIB將主要被忽略,WAR將使用JBoss服務器實例的統一類加載器加載示例類,其中jboss // lib/example.jar。 (這同樣適用於在同一服務器實例的任何其他戰爭或耳朵,假設沒有類加載覆蓋。)
的類加載聲明的情況下(如),您需要有兩個不同版本的example.jar: - jboss // lib:example1.0。罐子 - WEB-INF/lib目錄下:example2.0.jar
在這種情況下,JBoss會爲您的WAR一個獨特的和孤立的類加載器,這將避免在有利於的JBoss // LIB/example1.0.jar在WAR的上下文中,使用WEB-INF/lib/example2.0.jar的。
總之,如果你只運行在JBoss服務器實例一個WAR和/或你有沒有衝突的JAR問題,溝類加載聲明,並把你的JAR在的JBoss // LIB。它使得WAR文件更加輕量,整體部署可能會更簡單,並且在熱部署期間不會消耗更多內存和額外的類版本。
+1爲有用的描述。 – ziggy