web-dev-qa-db-fra.com

Adresse déjà utilisée: JVM_Bind java

Parfois, chaque fois que je redémarre l'application, qui est construite sur Java Struts Mysql et Jboss 4.05 Version J'obtiens l'erreur en tant que Adresse déjà utilisée: JVM_Bind

La seule solution que je connaisse est de redémarrer la machine et d’essayer à nouveau, cela fonctionnera . Sinon, je fais parfois Ctrl-Alt-Suppr et arrête tout le processus lié à Java, parfois cela fonctionne aussi.

Mais quelle est la raison exacte et comment pouvons-nous prévenir ce problème?

44
gmhk

Adresse déjà utilisée: JVM_Bind

signifie qu'une autre application écoute déjà sur le port que votre application actuelle tente de lier.

ce que vous devez faire, c'est changer le port de votre application actuelle ou une version améliorée. il suffit de trouver l'application en cours d'exécution et de la tuer.

sur Linux, vous pouvez trouver le pid de l'application en utilisant, 

netstat -tulpn
44
phoenix24

Sous Windows, ce scénario se produit lorsque Eclipse se bloque sans arrêt propre. Le serveur local Jetty ou Tomcat continue de fonctionner . Lorsque vous rouvrez Eclipse et essayez de redémarrer le serveur, l'adresse "déjà utilisée: JVM_Bind"

Vous pouvez résoudre ce problème en ouvrant le Gestionnaire des tâches, recherchez le processus javaw.exe et en le terminant.

Ensuite, vous pouvez redémarrer le serveur sur Eclipse.

enter image description here

26
CodeQ

Je rencontre généralement ce problème lorsque le port du serveur (j'utilise JBoss) est déjà utilisé

Les suspects habituels

  1. Apache Http Server => désactiver le service si vous travaillez sous Windows.
  2. IIS => arrêter le ISS en utilisant 
  3. Skype => oui j'ai eu Skype qui s'est attaché au port 80

Pour changer le port auquel JBoss 4.2.x se lie, allez à:

"C:\jboss4.2.2\server\default\deploy\jboss-web.deployer\server.xml"

ici par défaut est l'instance du serveur changez le port ici:

<Port du connecteur = "8080" address = "$ {jboss.bind.address}">

Dans l'exemple ci-dessus, le port est lié à 8080

13

Ouvrez la ligne de commande et tapez: netstat -a -o -n ou tasklist pour afficher les processus en cours d'exécution . Recherchez le port associé à Java et entrez: taskkill /F /PID <your PID number>. Cliquez sur Entrée.

4
Taras Melnyk

Est-il possible que MySql écoute sur le même port que JBoss?

Le message d'erreur indique-t-il un numéro de port - quelque chose comme Address already in use: JVM_Bind:8080

Vous pouvez modifier le port dans JBoss server.xml pour le tester.

3
JoseK

Cela peut également être dû à la double définition du port 8080 dans ..\Tomcat\conf\server.xml:

<Connector port="8080"
           enableLookups="false" redirectPort="8443" debug="0"/>
<Connector port="8080"
           enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/>
1
SzB

Cette erreur signifie que vous essayez de créer une nouvelle ServerSocket sur un port déjà utilisé par une autre ServerSocket. Essayez donc de faire en sorte que votre application ferme toutes les sockets et les connexions que vous connaissez et assurez-vous que votre application est complètement terminée. Vérifiez également s’il existe un autre processus lancé par votre programme.

1

La solution rapide pour éviter cela est que vous devez probablement arrêter JBoss avant de le redémarrer.

Vous devriez pouvoir appeler le bouton "Terminer" de la vue Console pour arrêter le serveur.

1
Jarle Hansen

veuillez essayer les options suivantes pour l'exception de liaison JVM:

  1. démarrez et arrêtez le serveur. et vérifiez les identifiants de processus du serveur, puis tuez et arrêtez le serveur.
  2. allez dans le panneau de configuration-> outil d'administration-> service-> vérifiez tous les serveurs et arrêtez tous les serveurs, puis démarrez votre propre serveur.
  3. changer le navigateur que vous utilisez. Par exemple, si your utilise IE, remplacez-le par Mozilla firefox.
0
aarifmkhan

Vous pouvez essayer de supprimer les informations d'identification de Team Server, celles-ci incluant probablement un type de port dans la colonne du serveur . Comme https://wathever.visualstudio.com: 443

Accédez à Windows/Préférences Développez Équipe puis Team Foundation Server Accédez à Informations d'identification et supprimez ce qui se trouve là-bas.

0
user9203842

J'ai eu le même sur Windows. Ma solution a été d'obtenir le port auquel le débogage veut se connecter. (Dans IntelliJ, un rectangle rouge donnant déjà l'info: "Erreur lors de l'exécution de Tomcat: impossible d'ouvrir le port du débogueur (127.0.0.1:XXXXX): ... Déjà utilisé ...") Disons que XXXXX est le numéro de port . Ensuite, j'ai cherché le problème et le PID dans une fenêtre de commande:

netstat -ano | find "CLOSE_WAIT" | find ":XXXXX"

J'ai reçu le numéro PID comme dernier numéro de la ligne de résultat. (Disons AAAA) Enfin:

TASKKILL /PID YYYY

Une information supplémentaire: Winscp s'est déconnecté pendant ce temps, probablement à cause de mon problème. :)

0
BlondCode

J'avais aussi ce problème. Pour moi, je ne pouvais pas démarrer/arrêter openfire (il était dit que c'était arrêté, mais tout fonctionnait toujours)

Sudo /etc/init.d/openfire stop
Sudo /etc/init.d/openfire start

De plus, le redémarrage d’Apache n’a pas aidé non plus.

Sudo /etc/init.d/Apache2 restart

Les erreurs étaient à l'intérieur:

/opt/openfire/logs/stderror.log
Error creating server listener on port 5269: Address already in use
Error creating server listener on port 5222: Address already in use

Pour remédier à cela, j'ai dû éteindre le serveur dans la zone d'administration de mon hôte. 

0
busycoding

Cela m'est arrivé récemment lors de l'activation de JMX sur deux services Tomcat exécutés dans Eclipse. J'ai mis par erreur le même port pour chaque serveur.

Donnez simplement à chaque télécommande jmx un port différent

Serveur 1

-Dcom.Sun.management.jmxremote.port=9000

Serveur 2

-Dcom.Sun.management.jmxremote.port=9001
0
steve