web-dev-qa-db-fra.com

Le port 8080 est déjà pris en compte lors de la tentative de redéploiement du projet à partir de Spring Tool Suite IDE

J'ai quelque chose d'étrange lorsque j'essaie de modifier le projet Spring dans ma suite Spring Tool. Lors du premier chargement (déploiement), tout va bien, l'application est compilée et s'exécute sur localhost: 8080 

Lorsque je modifie quelque chose dans le code et que je tente de le redéployer (exécutez-le à nouveau - Exécuter en tant qu'application d'amorçage printanier).

**************************** DEMANDE ÉCHOUÉE DE DEMARRER


La description:

Le connecteur Tomcat configuré pour écouter sur le port 8080 n'a pas réussi à début. Le port est peut-être déjà utilisé ou le connecteur peut être mal configuré.

Action:

Vérifiez la configuration du connecteur, identifiez et arrêtez tous les processus écoutez sur le port 8080 ou configurez cette application pour écouter sur un autre port.

2016-10-19 00: 01: 22.615 INFO 10988 --- [main] ationConfigEmbeddedWebApplicationContext: Clôture org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3023df74: date de démarrage [mer 19 oct 00:01:19 CEST 2016]; racine de contexte Hiérarchie 2016-10-19 00: 01: 22.616 INFO 10988 --- [main] o.s.j.e.a.AnnotationMBeanExporter: Annulation de l'enregistrement de .__ exposé. haricots à l'arrêt

Si j'arrête manuellement le processus sur ce port, tout fonctionne à nouveau correctement, mais cela ne peut pas être le bon moyen de redéployer l'application Spring. Est-ce que je fais quelque chose de mal ici?

J'utilise :: Spring Boot :: (v1.4.1.RELEASE)

P.S. Je suis conscient que je peux configurer un mécanisme de remplacement à chaud pour permettre le rechargement automatique de la page après le changement de code, mais pour le moment, j'aimerais tout d'abord résoudre ce problème.

Merci pour tout type d'aide ou d'information.

22
milan.latinovic

Cela arrive parfois même lorsque nous arrêtons d’exécuter des processus dans IDE avec l’aide de Bouton rouge , nous continuons d’obtenir la même erreur.

Il a été résolu avec les étapes suivantes,

  1. Vérifier quels processus sont en cours d'exécution sur les ports disponibles

    netstat -ao |find /i "listening"

    Nous suivons

    TCP 0.0.0.0:7981 machinename:0 LISTENING 2428 TCP 0.0.0.0:7982 machinename:0 LISTENING 2428 TCP 0.0.0.0:8080 machinename:0 LISTENING 12704 TCP 0.0.0.0:8500 machinename:0 LISTENING 2428

    c.-à-d. les numéros de port et quel/ l'identifiant du processus ils écoutent

  2. Arrêtez le processus en cours d'exécution sur votre numéro de port (dans ce cas, il s'agit de 8080 et l'ID de processus est 12704)

    Taskkill /F /IM 12704 (Remarque: mentionnez le bon identifiant de processus)

Mon problème a été résolu avec ceci, espérons que cela aide!

39
rdj7

Dans mon cas, l'erreur s'est produite car l'application n'a pas pu accéder au fichier de clés pour SSL.

Le démarrage de l'application en tant qu'utilisateur root a résolu le problème.

16
Registered User

Vous devez arrêter le processus en cours et en exécuter un nouveau. Dans Eclipse, vous pouvez appuyer sur ce bouton pour relancer votre application:  enter image description here

15
lukle

Pour les utilisateurs de Mac (Mac OS X El Capitan):.

Sudo lsof -i tcp: 8080

tuer -15 PID 

NB! PID IS UN NUMÉRO FOURNI PAR LA PREMIÈRE COMMANDE.

La première commande vous donnera le PID pour l'hôte local: 8080. Remplacez le PID dans la deuxième commande par le PID que la première commande vous donne pour arrêter le processus en cours sur localhost: 8080.

10
jsog

Si vous rencontrez une erreur sur votre console en disant: «Le conteneur de servlets incorporé n'a pas pu démarrer. Le port 8080 était déjà utilisé. ”Ensuite, accédez au fichier application.properties et ajoutez cette propriété“ server.port = 8090 ”.

En fait, le port par défaut pour le démarrage du printemps est 8080; si vous avez autre chose sur ce port, l'erreur ci-dessus se produira. Nous demandons donc à Spring Boot de s'exécuter sur un autre port en ajoutant «server.port = 8090» dans le fichier application.properties.

7
Hari Tummala

Il s’agit d’un échec de démarrage typique dû à l’utilisation du port du conteneur de servlets embedded

Votre conteneur Tomcat intégré n'a pas pu démarrer car le port 8080 était déjà utilisé.

Identifiez et arrêtez simplement le processus qui écoute sur le port 8080 ou configurez (dans votre fichier application.properties) cette application pour écouter sur un autre port.

7
georges van

Il existe deux façons de résoudre ce problème.Essayez l’option 1 d’abord, si cela ne fonctionne pas, essayez l’option 2 et votre problème sera résolu.

1) Dans le coin supérieur droit de votre console, il y a un bouton rouge. Pour arrêter l’application Spring Boot qui est déjà en cours d’exécution sur ce port, cliquez simplement sur le bouton rouge pour terminer.

2) Si le bouton rouge n'est pas activé, vous devez cliquer avec le bouton droit de la souris sur la console et sélectionner Terminer/Déconnecter tout. J'espère que cela t'aides.

Conseil bonus: - Si vous souhaitez exécuter votre serveur sur un autre port de votre choix, créez un fichier nommé application.properties dans le dossier de ressources de votre projet maven et écrivez server.port = 3000 pour exécuter votre application sur le port 3000.

4
Shubham Chopra

La raison en est qu’un conteneur de servlets est déjà en cours d’exécution sur le port 8080 et que vous essayez d’en exécuter un autre sur le port 8080.

  1. Vérifiez quels processus sont en cours d'exécution sur les ports disponibles.

  2. Maintenant, essayez de relancer ou arrêter votre application .
    • Pour relancer: vous pouvez appuyer sur ce bouton cliquez ici pour voir l'image
    • Pour arrêter dans les fenêtres:Taskkill /F /IM 6592 (Remarque: Mentionnez l'ID de processus correct) cliquez ici pour afficher l'image Cliquez avec le bouton droit de la souris sur la console et sélectionnez terminer/déconnecter tout

Accédez au gestionnaire de tâches et à la plateforme Java (tm) se binairecliquez ici pour afficher l'imagehttps://www.google.com/search?q=what+ is + Java (tm) + plateforme + se + binaire & oq = what + est + Java (tm) + plateforme + se + binaire & aqs = chrome..69i57.26349j1j7 & sourceid = chrome & ie = UTF-8

  1. Allez dans le fichier application.propertie s server.port = 0. Spring Boot utilisera un port libre au hasard à chaque démarrage.
3
Thimira Pathirana

Est-ce que je fais quelque chose de mal ici?

Oui, vous l'êtes. Un conteneur de servlets est déjà en cours d'exécution sur le port 8080 et vous essayez d'en exécuter un autre sur le port 8080.

Redémarrez le serveur (s’il existe un bouton pour cela dans STS) ou arrêtez-le et démarrez-le.

3
so-random-dude

Ouvrez "localhost: 8080" sur votre navigateur et voyez ce qui fonctionne sur ce port . Je l'ai fait et je viens de trouver Oracle 10g XE qui s'exécute en arrière-plan. Je suis donc allé à Démarrer-> Services et ai arrêté tous les services Oracle. Ensuite, je refais mvnw spring-boot:run sur IntelliJ et cela fonctionne comme par magie.

2
samivic

Cliquez simplement sur le bouton rouge pour arrêter tous les services sur Eclipse, puis relancez l'application en tant qu'application d'amorçage Spring. 

2
besartm

salut créer une simple ligne dans application.properties comme SERVER_PORT = 8090 a résolu le problème.

2
mohan krishna

Sur la machine Linux, sauvegardez le script bash et exécutez-le. Si vous souhaitez libérer le port 8080, entrez 8080 à l'invite 

echo "Enter port number to be closed :: "
read port
Sudo kill $(Sudo lsof -t -i:$port)
2
singh30

Créez le fichier application.properties sous le dossier src/main/resources et écrivez le contenu sous la forme 

server.port = 8084

Son fonctionnement correct . Mais chaque fois avant l'exécution, vous devez arrêter l'application en cliquant sur le bouton rouge en haut de l'IDE.enter image description here

ou essayer 

RightClick sur la console> cliquez sur terminer/déconnecter tout

2
yogii

Il existe certains processus en arrière-plan sur ce port, plusieurs raisons peuvent être à l'origine de ce problème, mais vous pouvez les résoudre facilement en mettant fin au processus lié à 8080 ou Spring.

Si vous utilisez Linux, il y a des étapes pour mettre fin au processus:

  1. Ouvrez le terminal et tapez la commande "htop"
  2. appuyer sur la touche F3 (cela vous permettra de chercher)
  3. Tapez "8080" s'il n'y a aucun résultat sur 8080 après cet essai "printemps"
  4. Puis appuyez sur F9 (KILL) et appuyez sur "9" (SIGKILL)

cela va tuer le processus qui reste sur le port 8080 et vous permettre d'exécuter l'application. 

1
twinster

Dans Spring Boot Application (utilisation de Spring Starter Project), nous avons un port de mise à jour dans Server.xml utilisant un serveur Tomcat et un ajout de ce port dans application.property (insrc/main/resources) Le code est server.port. = 8085

Et mettre à jour Maven Project puis exécuter l'application

0
Shubham Kumawat