web-dev-qa-db-fra.com

Comment exécuter l'application de démarrage de printemps dans Eclipse Tomcat?

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:

 enter image description here

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.

5
blue-sky

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):

  • Module Web dynamique
  • Java
  • Javascript

Puis vérifiez votre ensemble de déploiement:  enter image description here

Terminé!

13
leo

Réponse courte

  • utiliser les plugins Gradle: Eclipse-wtp et war
  • étendre SpringBootServletInitializer en Application

Explication:

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.

Comment créer un projet de test

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:

Check-out

l'exemple de projet:

git clone https://github.com/spring-guides/gs-rest-service.git

Importez-le dans Eclipse

Importez le sous-dossier complete/ en tant que projet de dégradé.

Changer build.gradle

retirer

apply plugin: 'Java'
apply plugin: 'Eclipse'

ajouter

apply plugin: 'war'
apply plugin: 'Eclipse-wtp'

Changer 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 .

0
andy

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.

0
Fikreselam Elala

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.

0
Sai Goud

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. 

0
asardana