Tengo en una máquina virtual un servidor JBOSS en el que he desplegado varios EJBs y una aplicación Java Web Start que hace uso de dichos EJBs.
El problema es que desde otro equipo no tengo acceso a la máquina virtual ya que está en una subred propia, pero lo que puedo hacer es configurar por NAT (para que las peticiones a los puertos de mi máquina real se redirijan a los de la máquina virtual) los siguientes puertos:
- 1099: servicio de JNP
- 1098: puerto RMI
- 4444: RMIObjectPort
Además, hay que añadir en el arranque del servidor JBOSS los siguientes parámetros:
- -Djava.rmi.server.hostname=<external_host_name>
- -Djava.rmi.server.useLocalHostname=false
donde <external_host_name> es el nombre de mi máquina «real» (que es la que ve el resto del mundo).
Algunos enlaces de interés
UsingJBossBehindAFirewall
java.rmi Properties
RMI: Running the Example Programs
SSH Tunneling for Java RMI, Part-II
NAT, RMI, -Djava.rmi.server.hostname, is there a client solution instead?
Accessing Applications across Firewalls
RMI Through Firewalls Via Proxies
Is it possible to replace the java-rmi.cgi script that comes with the JDK distribution with a servlet?
APACHE – Tomcat – RMI HTTP TUNNELLING HOW-TO