Tema: RMI
Pregunta: ¿ Cómo hago para que mi aplicación basada en RMI funcione a través del firewall ó router wire ó router wireless?
Respuesta:
1. Definir redirección del puerto en tu router y apuntarlo a la maquina servidor especificando su IP privada. (Puerto predeterminado RMI = 1099).
Si usas
RMISecurityManager en tu aplicación servidor, debes asegurarte que en tu archivo java.policy concedas los permisos necesarios para aceptar conexiones en el puerto definido para exportar tus objetos.
2. Se debe declarar la siguiente propiedad en tu aplicación servidor antes de crear el Registry:
Ejemplo:
Código PHP:
System.setProperty("java.rmi.server.hostname", "midominio.com");
EL segundo parametro debe ser la IP ó hostname PUBLICA, de tu aplicación servidor.
De otra forma NO FUNCIONARA así tengas el java.policy configurado para aceptar cualquier conexion.
Más info:
http://www.chuidiang.com/java/rmi/rmi_sin_security.php http://java.sun.com/j2se/1.4.2/docs/guide/rmi/
PD: Pase más de 1 semana investigando y probando mil lineas de código, con esto se elimina la implementación de crear un Proxy HTTP (No es necesario).
Espero les sea de ayuda.
Saludos...