具有依赖库的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。