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.
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
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:
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}'`
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).
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é.
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
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!
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é.
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.
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.
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.