J'ai une application de démarrage Spring et je souhaite l'exécuter en tant qu'application serveur dans Eclipse. Donc, l'application sera reconnue comme une application Web Tomcat et peut être ajoutée. Je met à jour la facette:
Lorsque je lance l'application Web, mes services de repos ne sont pas trouvés. Une application de démarrage de printemps contient une structure de dossier différente de celle des applications de printemps avant la sortie de cette dernière. Une application de démarrage printanier peut-elle être exécutée à partir d'un Tomcat configuré avec Eclipse? Également avant le démarrage du printemps, la section des contrôleurs de l'application doit être spécifiée. Dois-je mettre à jour mon application Spring Boot avec ces paramètres pour pouvoir exécuter Eclipse Tomcat?
Je ne veux pas créer une guerre, puis la copier dans le dossier webapps de Tomcat.
Mise à jour: La raison pour laquelle cette application est exécutée dans le conteneur Eclipse Tomcat est que j'ai d'autres applications de démarrage autre que le printemps dont dépend ma nouvelle application de démarrage printanier.
Vérifiez votre pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
<scope>provided</scope>
</dependency>
Ensuite, vérifiez votre classe d'application principale:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Configurez ensuite les facettes du projet (comme vous l’avez déjà fait):
Puis vérifiez votre ensemble de déploiement:
Terminé!
Eclipse-wtp
et war
SpringBootServletInitializer
en Application
Pour exécuter une application de démarrage de printemps sur Tomcat, l'artefact produit doit généralement être une application war
.
Pour le faire fonctionner sur Tomcat dans Eclipse, vous devez utiliser un projet WTP (Web Tools Platform ou Dynamic Web Module) à l'aide du plugin Eclipse-wtp
gradle.
La variable SpringBootServletInitializer
doit être étendue afin de permettre le lancement contextuel de l'application Spring Boot au lancement de Tomcat.
Spring propose un Tutoriel de mise en route comment créer un service Web REST avec Spring Boot. J'ai amélioré le projet pour qu'il fonctionne avec Tomcat et Eclipse:
l'exemple de projet:
git clone https://github.com/spring-guides/gs-rest-service.git
Importez le sous-dossier complete/
en tant que projet de dégradé.
build.gradle
retirer
apply plugin: 'Java'
apply plugin: 'Eclipse'
ajouter
apply plugin: 'war'
apply plugin: 'Eclipse-wtp'
src/main/Java/hello/Application.Java
ajouter une extension de SpringBootServletInitializer
public class Application extends SpringBootServletInitializer {
...
}
Cela fait, je pouvais déployer l'exemple de projet sur un serveur Tomcat configuré dans Eclipse et démarrer le serveur. L'URL est la suivante: http: // localhost: 8080/complete/greeting? Name = User
Découvrez le Complete Sample .
Suivez ces 2 étapes simples et votre bon départ!
Étape 1. Changez le format d’emballage en war au lieu de jar dans votre fichier pom.xml.
**<packaging>war</packaging>**
Étape 2. Faites un clic droit sur votre projet puis faites Maven -> mettre à jour le projet.
Après avoir suivi cette procédure, vous trouverez une option "Exécuter sur le serveur" lorsque vous essayez d’exécuter votre projet.
Ajoutez simplement cette annotation dans la classe principale de la botte à ressort.
@SpringBootApplication
@Configuration
@ComponentScan(value={"packages name to scan"})
Ajouter une dépendance dans le fichier pom.xml
.
Pour ceux qui ne peuvent pas voir l'option "Assemblage de déploiement", l'ajout de la nature ci-dessous au fichier .project activera l'option Assemblage de déploiement.
org.Eclipse.wst.common.modulecore.ModuleCoreNature
Après avoir défini la structure d'emballage de mon projet, je peux exécuter l'application sur le serveur Tomcat sans copier manuellement le fichier war dans le répertoire webapps.