web-dev-qa-db-fra.com

Grails: Résolution "Echec du démarrage du serveur pour le port 8080: adresse déjà utilisée".

Je reçois cette erreur en essayant de résoudre "Server failed to start for port 8080: Address already in use"

 Error executing script 8888: For input string: ""

Quelqu'un peut aider? Je ne sais pas ce qui ne va pas. Merci.

17
eggplant_roll

Lorsque le numéro de port 8080 est déjà utilisé et que vous souhaitez réutiliser le même port, vous devez arrêter son processus: 

Commencez par vérifier le pid du processus utilisant le port 8080. Pour ce faire, exécutez la commande suivante:

lsof -w -n -i tcp:8080

Result after running Command

Dans l'exemple ci-dessus, le pid est 3812 pour le processus utilisant le port 9090.

Prenez note du PID. Le PID peut être différent sur votre machine. Nous en avons besoin pour exécuter la commande suivante: kill process

vous devrez donc le tester via run-app: 

grails run-app

UPDATE: Le résultat de lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}' étant le PID , Vous pouvez supprimer automatiquement le processus de port par PID: 

 kill -9 `lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'`
23
Abdennour TOUMI

Si vous utilisez Grails/Groovy Tool Suite (basé sur Eclipse IDE), sélectionnez Exécuter en tant que> Exécuter les configurations .... . , entrée comme ceci: 

-Dserver.port=8050 run-app

Ainsi, Grails fonctionnera sur le port 8050 au lieu du port par défaut (8080).

8
Phat H. VU

Le message 

Échec du démarrage du serveur pour le port 8080: adresse déjà utilisée

indique qu'un autre processus sur votre machine s'est déjà lié au port 8080. J'imagine qu'il s'agit d'une instance de Tomcat exécutée soit parce que vous l'avez démarré, soit parce qu'elle n'a pas été correctement arrêtée par ce que vous utilisez IDE que vous utilisez. .

Dans tous les cas, cette question devrait vous aider à mettre fin au processus d’utilisation du port.

Quant à la deuxième erreur concernant le script 8888, je n'en ai aucune idée. Grails ne tente pas de démarrer ce script dans mon environnement, j'imagine donc qu'il est lié à un plugin que vous avez installé.

4
Bob McCracken

Le problème est que le numéro de port 8080 est déjà utilisé. Donc, vous devez soit arrêter ce processus pour laisser la place au nouveau processus, soit vous pouvez spécifier grails -Dserver.port=8090 run-app lorsque vous exécutez votre application.

Cependant, étant donné que vous rencontrez une erreur de script, il est possible que vous n'ayez pas spécifié le port dans votre BuildConfig.groovy.

voici la solution: ajoutez grails.server.port.http=8888 dans votre BuildConfig.groovy

se référer à un commentaire ici: http://www.icodeya.com/2012/06/grails-resolving-server-failed-to-start.html

3
ShootingStar

Lorsque le numéro de port 8080 est déjà utilisé et que vous souhaitez réutiliser le même port, vous devez interrompre son processus: Utiliser fuser 8080/tcp imprimera votre PID du processus lié à ce port.

Et ce fuser -k 8080/tcp va tuer ce processus.

Woks sur Linux uniquement. Plus universel est l'utilisation de lsof -i4 (ou 6 pour IPv6).

EXEMPLE: si le port est 8080, exécutez sur le terminal: 

 fuser -k -n tcp 8080

C'est ça!

1
Abdennour TOUMI

COMMENT TUER UN PORT OCCUPÉ

ouvrir la commande Invite et taper C:> netstat -a -n -o | trouver "8080" trouver le PID de l'exemple de port TCP 0.0.0.0:8888 0.0.0.0:0 ECOUTE 9068

suivant

C:> taskkill/PID 9068 /FSUCCESS: Le processus avec le PID 9068 est terminé.

1
teja reddy

Si vous utilisez STS ou Eclipse (ou probablement n'importe quel environnement construit sur Eclipse), une option consiste à accéder à la perspective Debug ( Fenêtre -> Perspective ouverte -> Debug ). À partir de là, vous pouvez cliquer avec le bouton droit sur votre serveur en cours d’exécution et cliquer sur Terminer et relancer . Cela va tuer le serveur actuel et redémarrer sur le même port afin de ne pas recevoir le message Server failed to start for port 8080: Address already in use.

En ce qui concerne le Error executing script 8888: For input string: "", je ne l’ai jamais vu auparavant, mais il semble que @ShootingStar ait une réponse.

1
Ero

Vous devez arrêter le processus qui s'exécute sur le port 8080; utilisez donc la commande suivante:

netstat -plten |grep Java

grep Java utilisé comme Tomcat utilise Java comme processus.

Il montrera la liste des processus avec le numéro de port et l'identifiant du processus

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/Java

le nombre précédant/Java est un identifiant de processus. Maintenant, utilisez la commande kill pour tuer le processus

kill -9 16085

-9 implique que le processus sera tué de force.

0
Aakarsh Gupta

Plus facile que les autres réponses postées.

Dans la fenêtre de la console, il y a une icône X et XX. Lorsque vous passez le curseur dessus. Vous verrez des bulles indiquant "Supprimer le lancement" et "Supprimer tous les lancements terminés". 

Cliquez sur les deux. Eclipse effacera tous les serveurs existants afin que vous puissiez relancer votre serveur sur le port par défaut.

0
SilentNot