我有兩個耳朵部署在適當的classloaders隔離設置jboss。當seam bean調用對數據庫進行一些查詢的spring bean時,一切正常,但是當spring調用quartz並且執行嘗試執行數據庫查詢時,會出現問題,因爲spring試圖從其他耳朵使用hibernate jar並引發異常!很明顯,spring classloader隔離問題。有沒有人遇到過這樣的問題?如何確保隔離?jboss上彈簧classloader隔離問題
1
A
回答
0
我打賭,SEAM使用的Hibernate JAR來自JBOSS類加載器,它在任何EAR類加載器之前調用。發生這種情況是因爲SEAM與JBOSS捆綁在一起。
EAR中的Spring使用的是不同版本的Hibernate JAR或它的依賴關係,因此會發生衝突。
您必須從JBOSS中刪除Hibernate JAR,以便它不再可見於應用程序服務器類加載器,但這可能會破壞SEAM。
您可能會看到JBOSS是否有任何方式告訴應用程序服務器在EAR配置中將應用程序級別的JAR更傾向於服務器JAR。
0
假設JBoss 4.x,然後在deploy/ear-deployer.xml
文件中,確保啓用了類加載器隔離,例如,
<server>
<mbean code="org.jboss.deployment.EARDeployer" name="jboss.j2ee:service=EARDeployer">
<attribute name="Isolated">true</attribute>
<attribute name="CallByValue">false</attribute>
<attribute name="EnablelibDirectoryByDefault">true</attribute>
</mbean>
</server>
這將阻止一個EAR中的類對另一個EAR可見。出於某種原因,默認設置爲Isolation=false
。
這可能就足夠了。但是,您可能還需要增加一個jboss-app.xml
文件中的EAR的META-INF
目錄,包含這樣的事情:
<jboss-app>
<loader-repository>MyCompany:loader=MyApplication</loader-repository>
</jboss-app>
我不知道,這確實還是什麼使用它,但在某些情況下,它似乎加強EAR之間的隔離。
相關問題
- 1. 彈簧事務隔離不起作用
- 2. 彈簧隔離支持? MSQL快照隔離
- 3. 如何在JBoss 6中分離ear classloader和system classloader?
- 4. JBoss隔離耳朵部署問題 - 互相隔離的耳朵模塊
- 5. JBoss 7--彈簧集成
- 6. AppDomain隔離問題
- 7. Java彈簧註解問題
- 8. 嵌套彈簧TxProxyTemplate問題
- 9. 彈簧和數據問題
- 10. 彈簧注射問題
- 11. 彈簧安全問題
- 12. 彈簧mvc映射問題
- 13. Hazelcast彈簧集成問題
- 14. 彈簧配置問題
- 15. 問題與Jboss同時隔離類jar的
- 16. JBoss Classloader存儲庫
- 17. IIS會話隔離問題
- 18. 隔離jQuery FF4問題
- 19. 彈簧安全2.0.7和彈簧2.5的登錄表單問題
- 20. 隔離級別可重複讀取彈簧引導
- 21. 彈簧框架中的默認隔離級別
- 22. WAS 7.0.0.0上的ClassLoader問題 - DocumentBuilderFactoryImpl
- 23. 如何在jboss彈簧中使用JTA
- 24. jboss錯誤中的彈簧部署
- 25. 石英jboss彈簧多個webapps
- 26. 彈簧註釋配置問題
- 27. 彈簧安置Json的問題
- 28. 彈簧構造函數問題
- 29. 彈簧引導控制器問題
- 30. 卡住彈簧性能問題