Ich habe eine sehr einfache Spring-Boot-Anwendung, die ich auf Jboss EAP bereitstellen möchte. Hier ist meine einfache Anwendung Klasse:SpringBoot-Anwendung auf Jboss EAP, Servlet-Kontext nicht loded
@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 + "!";
}
}
und meine pom.xml ist auch sehr einfach. Wenn ich diese Anwendung auf Tomcat ausführe, verwende ich den eingebetteten Tomcat, der mit Spring Boot geliefert wird. Mit nur einem Klick funktioniert alles wie Charme. Ich kann auf http://localhost:8080/demo/hello/World
zugreifen und es funktioniert auch.
Jetzt habe ich versucht, es Jboss EAP kompatible Krieg machen, deaktivierte ich den Tomcat durch Ausschließen von Spring-Boot-Starter-Web, und konvertieren Sie es in ein Kriegsprojekt. (wie von Artikel http://spring.io/blog/2014/03/07/deploying-spring-boot-applications vorgeschlagen).
Ich habe auch:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>,
wie es beschwert wurde.
Jetzt nach all dem, kompiliert es gut und schafft auch einen Krieg. Wenn ich diesen Krieg in die jboss-Bereitstellung kopiert habe, kann ich sehen, dass er erfolgreich auf der Konsole bereitgestellt wurde. Aber der Rest api http://localhost:8080/demo/hello/World
einfach nicht und ständig wirft auf Browser-Fehler funktioniert:
JBWEB000068: message /demo/hello/World
JBWEB000069: description JBWEB000124: The requested resource is not available.
Was mache ich falsch?
Eigentlich - ich bin jetzt in der Lage, mehrere Spring Boot-Anwendungen mit JBoss 6 erfolgreich bereitzustellen. Der Schlüssel zu dieser Leistung war mit der jboss-scanning.xml im Jar bereitgestellt JBoss zu sagen, nicht versuchen, jede Klasse in Autoconfigure lib laden . Es gibt noch einige andere Verbesserungen, die ich geschrieben habe, aber die jboss-scanning.xml war der Schlüssel. – juice