2
votes

I have a JAVA WAR file previously exported using JDK 7

I successfully deploy it in Tomcat 7, going to bin\startup.bat

When trying to do the same in WildFly 8 (using bin\standalone.bat) I get an error:

I guess the relevant error is

Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/factory/NoUniqueBeanDefinitionException Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.NoUniqueBeanDefinitionException from [Module "deployment.SpringHelloWorld.war:main" from Service Module Loader]

Full log:

2015-08-12 17:28:51,552 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-16) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./SpringHelloWorld: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./SpringHelloWorld: Failed to start service at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.8.0_51] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.8.0_51] at java.lang.Thread.run(Unknown Source) [rt.jar:1.8.0_51] Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/factory/NoUniqueBeanDefinitionException at java.lang.Class.getDeclaredMethods0(Native Method) [rt.jar:1.8.0_51] at java.lang.Class.privateGetDeclaredMethods(Unknown Source) [rt.jar:1.8.0_51] at java.lang.Class.getDeclaredMethods(Unknown Source) [rt.jar:1.8.0_51] at org.springframework.core.type.StandardAnnotationMetadata.hasAnnotatedMethods(StandardAnnotationMetadata.java:159) at org.springframework.context.annotation.ConfigurationClassUtils.isLiteConfigurationCandidate(ConfigurationClassUtils.java:106) at org.springframework.context.annotation.ConfigurationClassUtils.checkConfigurationClassCandidate(ConfigurationClassUtils.java:87) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:233) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:203) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:622) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645) at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508) at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449) at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133) at javax.servlet.GenericServlet.init(GenericServlet.java:244) at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117) at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:79) at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103) at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:220) at io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:125) at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:509) at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:88) at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:72) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final] ... 3 more Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.NoUniqueBeanDefinitionException from [Module "deployment.SpringHelloWorld.war:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final] ... 30 more

2015-08-12 17:28:51,569 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "SpringHelloWorld.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.undertow.deployment.default-server.default-host./SpringHelloWorld" => "org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./SpringHelloWorld: Failed to start service Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/factory/NoUniqueBeanDefinitionException Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.NoUniqueBeanDefinitionException from [Module \"deployment.SpringHelloWorld.war:main\" from Service Module Loader]"}} 2015-08-12 17:28:51,598 INFO [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "SpringHelloWorld.war" (runtime-name : "SpringHelloWorld.war") 2015-08-12 17:28:51,599 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report JBAS014777: Services which failed to start: service jboss.undertow.deployment.default-server.default-host./SpringHelloWorld: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./SpringHelloWorld: Failed to start service

Both web server installations are clean and have no customization at all

As one could have guessed, I have little recent experience with Java.

What am I missing here?

1

1 Answers

1
votes

Edit: The problem was a mixture of v3.1.2 spring-beans with 4.x.x version of other spring jars. Upgrading spring-beans to the same version as the other jars resolved the exception. It's still unclear why it worked in Tomcat.

Does your war contain spring-beans jar? The class that it can't find, org.springframework.beans.factory.NoUniqueBeanDefinitionException, is defined in http://mvnrepository.com/artifact/org.springframework/spring-beans