He estado toda la tarde perdiendo el tiempo intentando enviar un mensaje de JMS por medio de un servidor de mensajería de JBoss que se ejecutaba en otra máquina. El resultado era que en la aplicación que enviaba el mensaje me salía una excepción indicando que la conexión estaba rechada. Sin embargo, cuando realizaba el envío desde la máquina en que corría el servidor de JBoss, el resultado era positivo, tanto si movía la aplicación a la máquina en la que se ejecutaba el servidor, como si ponía el servidor a ejecutarse en la máquina en la que tenía la aplicación.
Debido a mi falta de conocimiento sobre administración de JBoss desconocia el origen del problema y tuve que "googlear" bastante hasta encontrar cual era el origen del problema (http://gearon.blogspot.com/2005_09_01_gearon_archive.html).
El problema estaba en que en el /etc/hosts del servidor la definición del nodo local era la siguiente:
127.0.0.1 localhost.localdomain
TSAD2 localhost
192.168.0.62 TSAD2
192.168.0.67 cliente.tsad
cuando debería ser:
127.0.0.1 localhost.localdomain localhost
192.168.0.62 TSAD2
192.168.0.67 cliente.tsad
Una sutíl diferencia, pero muy grande en cuanto al resultado final.
Por si a alguien le interes esta era la excepción que me salía enviando el mensaje de JMS desde un equipo remoto.
Exception in thread "main" javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at TopicSendRecvClient.setupPubSub(TopicSendRecvClient.java:52)
at TopicSendRecvClient.sendRecvAsync(TopicSendRecvClient.java:66)
at TopicSendRecvClient.main(TopicSendRecvClient.java:92)
Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
... 5 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
at java.net.Socket.connect(Socket.java:507)
at java.net.Socket.connect(Socket.java:457)
at java.net.Socket.
(Socket.java:365)
at java.net.Socket.(Socket.java:178)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
... 10 more