springBoot application sur Jboss EAP, servlet contexte pas lodaed
J'ai une question très simple de printemps de démarrage de l'application que je souhaite déployer pour Jboss EAP. Voici mon application simple de la classe:
@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 + "!";
}
}
et mon pom.xml est également très basique. Quand je lance cette application sur Tomcat, en utilisant le Tomcat intégré ce qui est livré avec le printemps de démarrage. Tout fonctionne comme un charme en un seul clic. Je peux accéder à http://localhost:8080/demo/hello/World
et il travaille trop.
Maintenant, j'ai essayé de faire de Jboss EAP compatible guerre, j'ai désactivé le Tomcat en excluant de printemps-amorçage-starter-web, et de le convertir en une guerre de projet. (comme suggéré par l'article http://spring.io/blog/2014/03/07/deploying-spring-boot-applications).
J'ai également ajouté:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>,
comme il a été se plaindre.
Maintenant, après tout cela, il compile fine et crée une guerre de trop. Lorsque j'ai copié cette guerre de déploiement de jboss, je peux voir qu'il a déployé avec succès sur la console.
Mais le reste de l'api http://localhost:8080/demo/hello/World
ne fonctionne tout simplement pas et constamment déclenche une erreur sur navigateur:
JBWEB000068: message /demo/hello/World
JBWEB000069: description JBWEB000124: The requested resource is not available.
Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
Trouvé ça dans Printemps De Démarrage Guide De Référence, ajoutez la ligne ci-dessous dans l'application.fichier de propriétés
testé cela dans jBoss EAP 6.2 et a bien fonctionné.
Réponse est ici : Spring Java Config vs Jboss 7
Apparemment "/" ne fonctionne pas sur Jboss EAP 6.3 , mais "/*" fonctionne.
et ils semble avoir fixé avec wildfly 8
Vous avez mentionné JBoss 6 en vous tags. Basé sur mon expérience de Printemps de Démarrage configurer automatiquement et JBoss 6 (en particulier) est un no-go. Si de déploiement à Chaud est activée ou peut-être une autre condition JBoss VFS effectue quelques agressif de la numérisation de tous les pots dans le fichier war. Une fois qu'il commence à scanner les classes de l'auto-configurer le module, il va abandonner suite à une erreur semblable à ClassNotFoundException. Si vous utilisez l'auto-configurer, une solution pourrait être de placer le printemps des modules dans le Conteneur lib. Mais ce serait faire de déploiement lourd. Je n'ai pas vu ce problème sur JBoss 7, ni Wildfly 8.