Spring RESTful Service en tant que WAR au lieu de JAR dans Tomcat
Je suis dans le processus de création d'un service web REST en Java Printemps. J'ai été chargé de STS et de l'exemple détaillé :
"Ce guide vous guide à travers le processus de création d'un "hello world" service web RESTful avec le Printemps."
http://spring.io/guides/gs/rest-service/
Cependant que le tutoriel ne va pas plus loin.. je veux créer un fichier WAR à la place d'une auto de course bocal contenant une servlet, et déployer que la GUERRE de fichier. J'ai ensuite trouvé ce tutoriel, et a tenté de modifier juste le premier tutoriels construire.gradle fichier.
"Conversion d'un Printemps de Démarrage JAR de l'Application d'une GUERRE"
http://spring.io/guides/gs/convert-jar-to-war/
Il semblait à construire amende en un .la guerre de fichier.. le service est en cours d'exécution dans mon TOMCAT instance du gestionnaire.. mais j'obtiens l'erreur 404 est une fois que j'ai tenter d'utiliser le service.
URL 404 avais
http://localhost:8080/gs-rest-service-0.1.0/dbgreeting?name=MyName
Dois-je modifier la cartographie?
DataBaseController.java
@RequestMapping("/dbgreeting")
public @ResponseBody DataBaseGreeter dbgreeting(
@RequestParam(value="name", required=false, defaultValue="World") String name) {
return new DataBaseGreeter(counter.incrementAndGet(),String.format(template, name));
}
Maintenant, j'ai l' .la guerre de fichier créé selon un mélange de choses.. et inquiet, j'ai peut-être raté quelque chose.
J'ai découvert depuis XAMPP sur OSX ne contient pas une webapp/dossier, ce qui m'a forcé à charge Bitnami de Tomcat pile à la place. Les gens en général basculer entre XAMPP et les autres piles, sur cette base? ou ai-je raté quelque chose pour obtenir webapp créé dans XAMPP?
source d'informationauteur Erik | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
Une GUERRE est juste un POT avec spécial properites. Elle doit avoir une WEB-INF, en vertu de laquelle vous avez besoin d'un web.xml pour décrire votre déploiement, tout serveur d'application dependentXML fichiers de configuration, et généralement d'une lib, les classes, et autres bricoles.
La façon la plus simple serait d'utiliser Maven pour créer votre GUERRE. Je pense que vous devriez être en mesure de simplement changer le type de projet dans le pom.xml de POT à la GUERRE. Le tutoriel vous a suivi semble utiliser Gradle, qui à son tour utilise Maven, je crois, de sorte que vous devrait en avoir un quelque part. Autre que cela, google des tutoriels sur la façon de construire une GUERRE. Je ne crois pas que Tomcat nécessite spécial des descripteurs de déploiement, de sorte que vous ne devrait avoir besoin que le web
.xml.
(Réponse de l'OP déplacé à partir de la question ici)
Garçon je me sens vraiment stupide.. Trouvé qu'il y avait plus pour le tutoriel, après modification de la gradle instructions.. y compris la très nécessaire de Configuration Automatique qui remplace/remplace la nécessité d'une web.xml
Solution
Initialisation de la servlet
Précédemment, la demande contenait une
public static void main()
méthode que le spring-boot-gradle-plugin est configuré pour s'exécuter lors de l'utilisation de lajava -jar
commande.Par la conversion dans un fichier WAR avec pas de fichiers XML, vous avez besoin d'un signal différent pour le conteneur de servlet sur la façon de lancer l'application.
src/main/java/hello/HelloWebXml.java
Va donner du crédit à la première réponse, mais vous avez tous deux étaient correctes que l'web.xml (ou de ce Printemps-Boot utilise pour le remplacer) était nécessaire.
Je m'attends à voir un peu d'INFO de sortie lorsqu'un ressort de démarrage de l'application démarre alors voici quelques idées:
Essayer régulièrement de tomcat instance
bin/startup.sh
webapps
répertoireInspecter manuellement le fichier war