Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

springBoot application on Jboss EAP, servlet context not lodaed

I have a very simple spring boot application that I want to deploy to Jboss EAP. Here is my simple application class:

@SpringBootApplication

public class MayurApplication extends SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(MayurApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(applicationClass);
    }

    private static Class<MayurApplication> applicationClass = MayurApplication.class;
}

@RestController
class GreetingController {

    @RequestMapping("/hello/{name}")
    String hello(@PathVariable String name) {
        return "Hello, " + name + "!";
    }
}

and my pom.xml is also very basic. When I run this application on Tomcat, using the embedded Tomcat what ships with spring boot. Everything works like charm in just one click. I can access http://localhost:8080/demo/hello/World and it works too.

Now I tried to make it Jboss EAP compatible war, I disabled the Tomcat by excluding from spring-boot-starter-web, and convert it into a war project. (as suggested by article http://spring.io/blog/2014/03/07/deploying-spring-boot-applications).

I also added:

<dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>javax.servlet-api</artifactId>
                 <scope>provided</scope>
            </dependency>,

as it was complaining.

Now after all this, it compiles fine and creates a war too. When I copied this war to jboss deployment, I can see it successfully deployed on console. But the rest api http://localhost:8080/demo/hello/World just does not work and constantly throws error on browser:

JBWEB000068: message /demo/hello/World
JBWEB000069: description JBWEB000124: The requested resource is not available.

What am I doing wrong?

like image 960
Mayurb Avatar asked Dec 20 '14 03:12

Mayurb


2 Answers

Found this in Spring Boot Reference Guide, add the below line in application.properties file

server.servlet-path=/*

tested this in jBoss EAP 6.2 and worked fine.

like image 73
Youssef Al Muhaidib Avatar answered Sep 18 '22 09:09

Youssef Al Muhaidib


Answer is here : Spring Java Config vs Jboss 7

Apparently "/" does not work on Jboss EAP 6.3 , but "/*" works. and they seems to have fixed it with wildfly 8

like image 44
Mayurb Avatar answered Sep 20 '22 09:09

Mayurb