具有依赖库的Maven EJB打包

我面临一个问题,如何使用简单的WAR和EJB3模块为JBoss7应用服务器正确打包我的企业(EAR)应用程序。 问题是,EJB模块正在使用XML-RPC库(来自Apache),并且在部署EAR期间我仍然获得NoDefClassFound(来自此xmlrpc lib的类)。

问题是,maven- ejb -plugin不会在最终的EJB jar中打包依赖项,但是maven- ear -plugin会将它打包到EAR目录的根目录。

部署EAR时,会在内部EJB模块上调用INSTALL,但它找不到xmlrpc lib类(它不与EJB jar一起打包,而是EAR,并且它在清单中没有任何条目)。

EJB pom.xml

  4.0.0 cz.ctu.fee.voxport.app_logic core 1.0 ejb   javax javaee-api 6.0 provided   org.apache.xmlrpc xmlrpc-common 3.1.3   org.apache.xmlrpc xmlrpc-client 3.1.3      org.apache.maven.plugins maven-ejb-plugin 2.3  3.1   true        

有没有办法如何使用maven干净利落地解决这个问题?

我设法解决了这个问题。 似乎这些库必须打包在/ lib目录中,而不是在EAR的根目录中。 添加defaultLibBundleDir元素解决了这个问题。

例如:

    org.apache.maven.plugins maven-ear-plugin 2.6  lib ... 

您是否在EJB配置上保留了true

好吧,你可以这样离开它,但是你会在服务器启动时得到一堆日志条目(WARN)抱怨类路径条目。 我更喜欢将其设置为false。 false