Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring Boot doesn't work on JBoss

I'm staring with Spring Boot and I tried to create the example available in the website (http://projects.spring.io/spring-boot/#quick-start). Everything worked fine when I ran the example as a standalone application (.jar) and also as a web application (.war) in my Tomcat server.

But when I moved the same .war file that worked on Tomcat to a JBoss 7.1 server it didn't work anymore. I'm getting this error:

Error calling onStartup for servlet container initializer: org.springframework.web.SpringServletContainerInitializer: java.lang.NoSuchMethodError: org.slf4j.bridge.SLF4JBridgeHandler.removeHandlersForRootLogger()V

I have no idea why this is happening. I google'd the but couldn't find anything related to Spring Boot. Can anybody please help me? The full stack trace is below. Thanks in advance!

13:43:10,009 WARN  [org.jboss.as.ee] (MSC service thread 1-3) JBAS011006: Not installing optional component org.springframework.http.server.ServletServerHttpAsyncRequestControl due to exception: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011054: Could not find default constructor for class org.springframework.http.server.ServletServerHttpAsyncRequestControl
    at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:606)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_10-ea]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_10-ea]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_10-ea]

13:43:10,014 WARN  [org.jboss.as.ee] (MSC service thread 1-3) JBAS011006: Not installing optional component org.springframework.web.context.request.async.StandardServletAsyncWebRequest due to exception: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011054: Could not find default constructor for class org.springframework.web.context.request.async.StandardServletAsyncWebRequest
    at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:606)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_10-ea]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_10-ea]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_10-ea]

13:43:10,528 INFO  [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/ScheduledTasks]] (MSC service thread 1-15) Spring WebApplicationInitializers detected on classpath: [hello.HelloWebXml@31518afb]
13:43:10,695 INFO  [org.springframework.boot.autoconfigure.AutoConfigurationReportLoggingInitializer] (MSC service thread 1-15) Nothing to report: ApplicationContext not available
13:43:10,721 ERROR [org.jboss.web] (MSC service thread 1-15) JBAS018202: Error calling onStartup for servlet container initializer: org.springframework.web.SpringServletContainerInitializer: java.lang.NoSuchMethodError: org.slf4j.bridge.SLF4JBridgeHandler.removeHandlersForRootLogger()V
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize(LogbackLoggingSystem.java:70) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.boot.context.initializer.LoggingApplicationContextInitializer.initialize(LoggingApplicationContextInitializer.java:108) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.boot.SpringApplication.callNonEnvironmentAwareSpringApplicationInitializers(SpringApplication.java:371) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:291) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:130) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.boot.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:90) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.boot.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:53) [spring-boot-0.5.0.BUILD-SNAPSHOT.jar:0.5.0.BUILD-SNAPSHOT]
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:181) [spring-web-4.0.0.RELEASE.jar:4.0.0.RELEASE]
    at org.jboss.as.web.deployment.JBossContextConfig.lifecycleEvent(JBossContextConfig.java:148) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3845) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_10-ea]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_10-ea]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_10-ea]

13:43:11,154 ERROR [org.jboss.web] (MSC service thread 1-15) JBAS018206: Webapp [/ScheduledTasks] is unavailable due to startup errors
13:43:11,155 ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-15) Context [/ScheduledTasks] startup failed due to previous errors
13:43:11,219 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-15) MSC00001: Failed to start service jboss.web.deployment.default-host./ScheduledTasks: org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./ScheduledTasks: JBAS018040: Failed to start context
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:95)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_10-ea]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_10-ea]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_10-ea]

13:43:11,428 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "ScheduledTasks.war" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.web.deployment.default-host./ScheduledTasks" => "org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./ScheduledTasks: JBAS018040: Failed to start context"}}
13:43:11,469 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-11) JBAS015877: Stopped deployment ScheduledTasks.war in 40ms
13:43:11,470 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report JBAS014777:   Services which failed to start:      service jboss.web.deployment.default-host./ScheduledTasks: org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./ScheduledTasks: JBAS018040: Failed to start context

13:43:11,472 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.web.deployment.default-host./ScheduledTasks" => "org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./ScheduledTasks: JBAS018040: Failed to start context"}}}}
like image 810
vegidio Avatar asked Dec 31 '13 15:12

vegidio


Video Answer


1 Answers

JBoss 7 is a basket case, and I really recommend you use something else. If you really need to use it for some reason you should find the logging error goes away if you upgrade to Spring Boot 1.0.0.RC2. But there will still be other problems with JBoss. See my comment in Spring Java Config vs Jboss 7 for some help limping over the next likely obstacle.

like image 52
Dave Syer Avatar answered Oct 02 '22 05:10

Dave Syer