JBoss : java.net.BindException: Address already in use: JVM_Bind

Lorsque vous démarrez JBoss, vous obtenez l’erreur ci-dessous :

[ServiceController] Problem starting service jboss.mq:service=InvocationLayer,type=UIL2
java.net.BindException: Address already in use: JVM_Bind

Avant de changer les ports dans jboss-service.xml, il faut regarder si tous les ports de JBoss sont disponibles.

Ci-dessous, la liste des ports utilisés et les services associés :

Port Type Service Name
1098 TCP jboss:service=Naming
1099 TCP jboss:service=Naming
3873 TCP jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3
4444 TCP jboss:service=invoker,type=jrmp (legacy 4.0.x invoker)
4445 TCP jboss:service=invoker,type=pooled (legacy 4.0.x invoker)
4446 TCP jboss.remoting:service=Connector,transport=socket (EJB2 beans in AS/EAP 4.2+)
8009 TCP jboss.web:service=WebServer
8080 TCP jboss.web:service=WebServer
8083 TCP jboss:service=WebService
8090 TCP jboss.mq:service=InvocationLayer,type=OIL
8092 TCP jboss.mq:service=InvocationLayer,type=OIL2
8093 TCP jboss.mq:service=InvocationLayer,type=UIL2

Ci-dessous, la liste des ports utilisés et les fichiers de conf associés :

Port Type Service Descriptor
1098 TCP conf/jboss-service.xml
1099 TCP conf/jboss-service.xml
3873 TCP deploy/ejb3.deployer/META-INF/jboss-service.xml
4444 TCP conf/jboss-service.xml
4445 TCP conf/jboss-service.xml
4446 TCP conf/jboss-service.xml
8009 TCP deploy/jbossweb-tomcat41.sar/META-INF/jboss-service.xml
8080 TCP deploy/jbossweb-tomcat41.sar/META-INF/jboss-service.xml
8083 TCP conf/jboss-service.xml
8090 TCP deploy/jms/oil-service.xml
8092 TCP deploy/jms/oil2-service.xml
8093 TCP deploy/jms/uil2-service.xml

Dans l’erreur, JBoss donne le nom du service problématique.
Dans notre cas, il s’agit du service UIL2.

Si on réfère au tableau, on trouve le port 8093 (et l’adresse d’écoute par défaut est 127.0.0.1).

Sous Windows :

netstat -a permet de lister les ports utilisés et en ajoutant, le switch -b on obtient les processus attachés.

Avec la commande ci-desssous, vous allez savoir si un processus utilise le port sur cette adresse.

netstat -ab | find /N "127.0.0.1:8093"

Ensuite, il faut taper la commande complète sans le find pour repérer le processus.

netstat -ab

Sous Linux :

 fuser -v -n tcp 8093

Enfin, il vous suffit soit d’arrêter le processus bindé sur le port que vous voulez utiliser soit changer le port du service.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.