приложение springBoot на JBoss EAP, контекст сервлета не lodaed
у меня есть очень простое приложение spring boot, которое я хочу развернуть в JBoss EAP. Вот мой простой класс приложений:
@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 + "!";
    }
}
и мой пом.xml также очень прост. Когда я запускаю это приложение на Tomcat, используя встроенный Tomcat, что поставляется с spring boot. Все работает как шарм в один клик. Я могу получить доступ http://localhost:8080/demo/hello/World и это тоже работает.
теперь я попытался сделать его совместимым с JBoss EAP war, я отключил Tomcat, исключив из spring-boot-starter-web и преобразовать его в военный проект. (в соответствии со статьей http://spring.io/blog/2014/03/07/deploying-spring-boot-applications).
я добавил:
<dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>javax.servlet-api</artifactId>
                 <scope>provided</scope>
            </dependency>,
как он жаловался.
теперь после всего этого он отлично компилируется и создает войну. Когда я скопировал эту войну в развертывание jboss, я вижу, что она успешно развернута на консоли. 
Но остальные api http://localhost:8080/demo/hello/World просто не работает и постоянно выкидывает ошибку браузер:
JBWEB000068: message /demo/hello/World
JBWEB000069: description JBWEB000124: The requested resource is not available.
что я делаю не так?
3 ответов
нашел в Справочник По Весенней Загрузке добавить ниже строку в приложение.свойства файла
server.servlet-path=/*
протестировал это в JBoss EAP 6.2 и работал нормально.
ответ здесь : Spring Java Config vs Jboss 7
по-видимому, " / "не работает на JBoss EAP 6.3 , но "/ * " работает. и они, кажется, исправили это с wildfly 8
вы упомянули JBoss 6 в тегах. Основываясь на моем опыте Spring Boot Автоконфигурирование и JBoss 6 (в частности) не идет. Если включено горячее развертывание или, возможно, другое условие, JBoss VFS выполняет агрессивное сканирование всех банок в файле war. Как только он начнет сканировать классы в модуле autoconfigure, он будет прерван из-за ошибки, похожей на ClassNotFoundException. Если вы используете Autoconfigure, одним из решений может быть размещение модулей spring в Контейнера Либ. Но это сделало бы развертывание громоздким. Я не видел такого поведения на JBoss 7 или Wildfly 8.
