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.
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,
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
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!
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.
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.
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.
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.
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.
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.
Vérifiez quels processus sont en cours d'exécution sur les ports disponibles.
netstat -ao |find /i "listening"
cliquez ici pour voir l'image OU netstat -ano | find "8080"
(Remarque: le port échoue pour le port 8080) cliquez ici pour voir l'imageTaskkill /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 toutAccé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
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.
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.
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.
salut créer une simple ligne dans application.properties comme SERVER_PORT = 8090 a résolu le problème.
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)
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.
ou essayer
RightClick sur la console> cliquez sur terminer/déconnecter tout
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:
cela va tuer le processus qui reste sur le port 8080 et vous permettre d'exécuter l'application.
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