Address already in use: JVM_Bind
Cuando estamos desplegando el jboss, ya sea la versión 5 o la versión 4, en algunas ocasiones nos encontramos el siguiente error en el despliegue:
java.net.BindException: Address already in use: JVM_Bind
Cause: java.rmi.server.ExportException: Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
Tenemos varias formas de solventar este error, la más fácil es bajarte el programa TCPView de la web http://technet.microsoft.com/en-us/sysinternals , si de Microsoft, en ocasiones tienen algunos programas útilies :D, ejecútalo y busca el proceso que tiene bloqueado el puerto 1098, y desbloquealo.
La otra forma de que no suceda más, es quizás un poco más delicada , pero también muy sencilla, cambiaremos la configuración del jboss para que no vuelva a molestarnos ese puerto, tendremos que tener el servidor Jboss parado, esto sólo debe aplicarse si el bloqueo del puerto ocurre constatemente.
Nos vamos a la ruta donde tengamos la carpeta deploy del jboss y donde esté situado el archivo bindings.xml (hacer una copia de seguridad con anterioridad, que nos conocemos)
Para el caso del jboss 5 es en la carpeta:
%JBOSS_HOME%\conf\bootstrap\
Editar el archivo bindings.xml y buscar el bean: org.jboss.services.binding.ServiceBindingMetadata y cambiar donde pone 1098 por 10098.
Quedando de la forma:
<bean class=”org.jboss.services.binding.ServiceBindingMetadata”>
<property name=”serviceName”>jboss:service=Naming</property>
<property name=”bindingName”>RmiPort</property>
<property name=”port”>10098</property>
</bean>
Si el puerto que da problemas es el 1099, proceder de igual forma con el bean org.jboss.services.binding.ServiceBindingMetadata quedando de la forma:
<bean class=”org.jboss.services.binding.ServiceBindingMetadata”>
<property name=”serviceName”>jboss:service=Naming</property>
<property name=”bindingName”>Port</property>
<property name=”port”>10099</property>
</bean>
Por otro lado si es el puerto RMI el que se queda colgado procedemos de la misma forma, cambiando 1090 por 10090 en el bean:
<bean class=”org.jboss.services.binding.ServiceBindingMetadata”>
<property name=”serviceName”>jboss.remoting:service=JMXConnectorServer,protocol=rmi</property>
<property name=”port”>10090</property>
</bean>
Espero que os haya sido de utilidad :D
Con este pequeño artículo inaguro la parte de tutoriales, que más bien son notas sobre diversas cosas que me vaya encontrando y que iré poniendo para que no se me olviden a mí y así nos aprovechemos todos de ellas, jejeje.
Un saludo y como dice una marca de deportes, Just do it :D