Maven 3 upgrage - maven ear plugin bundles diffferent version of libs - ClassNotFoundException weblogic -
i have maven multi module project. in there few web projects , ejb projects. there no cheange in source code of entire project. upgraded maven 3 , built project. resulting ear file has libraries of different versions ear file built using maven 2. older version of particular libs , newer version of particular libs.
for eg: commons-logging-1.1.1 maven2 wiht maven 3 resolved commons-logging-1.0.3
the real problem is, when try deploy ear created maven 3 weblogic server, classnotfoundexception spring classes. spring classes there in ear file. double checked it. ear file of same source code built maven 2 deploys successfully.
<mar 24, 2014 11:42:17 ist> <error> <http> <bea-101371> <there failure when processing annotations application c:\weblogic\appsrv\domains\mydomain\servers\admin\tmp\_wl_user\myapp-ear\1697udy\app-control.war. please make sure annotations valid. error org.springframework.web.context.support.httprequesthandlerservlet> <mar 24, 2014 11:42:17 ist> <error> <deployer> <bea-149205> <failed initialize application 'mayapp-ear' due error weblogic.application.moduleexception: failed load webapp: '/app-control-war'. weblogic.application.moduleexception: failed load webapp: '/app-control-war' @ weblogic.servlet.internal.webappmodule.prepare(webappmodule.java:387) @ weblogic.application.internal.flow.scopedmoduledriver.prepare(scopedmoduledriver.java:180) @ weblogic.application.internal.flow.modulelistenerinvoker.prepare(modulelistenerinvoker.java:93) @ weblogic.application.internal.flow.deploymentcallbackflow$1.next(deploymentcallbackflow.java:388) @ weblogic.application.utils.statemachinedriver.nextstate(statemachinedriver.java:37) truncated. see log file complete stacktrace java.lang.classnotfoundexception: org.springframework.web.context.support.httprequesthandlerservlet @ weblogic.utils.classloaders.genericclassloader.findlocalclass(genericclassloader.java:283) @ weblogic.utils.classloaders.genericclassloader.findclass(genericclassloader.java:256) @ weblogic.utils.classloaders.changeawareclassloader.findclass(changeawareclassloader.java:54) @ java.lang.classloader.loadclass(classloader.java:306) @ java.lang.classloader.loadclass(classloader.java:247) truncated. see log file complete stacktrace
if upgrade maven, there need tell application server?
update: see there no classpath entry in 1 of ejb module's manifest file. may cause of issue. why missing when fine maven2 build? there no change in pom file @ all.
it turned out bug maven 3.0.3 https://jira.codehaus.org/i#browse/mejb-53
as workaround, added maven-jar-plugin generate manifest file class path entries , added manifestfile property maven-ejb-plugin
<plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-jar-plugin</artifactid> <configuration> <archive> <manifest> <addclasspath>true</addclasspath> </manifest> </archive> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-ejb-plugin</artifactid> <configuration> <ejbversion>3.0</ejbversion> <archive> <manifestfile>target/generated-resources/meta-inf/manifest.mf</manifestfile> </archive> </configuration>
Comments
Post a Comment