2012-02-22 77 views
0

有關於如何在OpenEJB上依賴打包和部署EJB的文檔/規範?獨立OpenEJB打包與依賴關係

我試圖部署EAR包:

service.ear/lib/activemq-all.jar 
service.ear/META-INF/application.xml 
service.ear/model.ejb!META-INF/ejb-jar.xml 
service.ear/model.ejb!com/example/MyActivemqDependentService.class 

它已成功部署,客戶端可以找到使用JNDI,但是,當它初始化,NoClassDefFound例外ocurr。

回答

1

ActiveMQ已經配備了OpenEJB,我不希望它在EAR中也能工作。

這很可能是您的NoClassDefFoundError s的來源。刪除activemq-all.jar是我想嘗試的第一件事。

+0

這解決了目前的問題。我將測試一段時間的應用程序,並檢查此排除是否不會影響某些activemq相關代碼。 Regards – apast 2012-02-23 11:15:51

+0

我應該不能運送我自己的任何lib版本我想要嗎?我認爲這是類加載器繼承背後的想法。 – SkyDan 2013-04-03 09:08:49

+0

我們在OpenEJB中實際使用了一個標準的'java.net.URLClassLoader',所以它具有與普通Java SE應用程序相同的類加載語義。父類加載器中有ActiveMQ,所以子類加載器可以看到它並使用它。 – 2013-04-03 11:54:51