2012-02-22 74 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