Pregunta

¿Cómo puedo usar RMI con un cliente de applet detrás de un firewall?

¿Cómo puedo usar RMI con un servidor con firewall y un cliente de applet con firewall? (Si es posible)

Sé que el servidor RMI usa el puerto 1099 (por defecto, pero esto es configurable); sin embargo, después de esto, la comunicación requiere un nuevo socket en un puerto aleatorio diferente. También sé que puede configurar el proxy en el cliente para RMI a través del túnel HTTP, que en teoría debería resolver mi problema. Pero no puedo hacer que funcione (intenté configurar las propiedades ambientales en mi cliente XP, pero Internet Explorer sigue ignorándolas).

Otros consejos

Si el código de los servidores está en su mano, también podría restringir RMI para que use un puerto predefinido al proporcionar un RMISocketFactory personalizado como se describe aquí: http://insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing.html

(Tenga en cuenta especialmente la sugerencia de que puede causar problemas si usa JMX en paralelo)

Todavía no lo he investigado profundamente, pero al buscar un proyecto que estoy haciendo actualmente me encontré con LipeRMI .

Es posible que desee echarle un vistazo, ya que está orientado hacia el uso de Internet y menciona "seguir a los clientes de tal manera que puedan estar detrás de una red local, enrutador o cortafuegos;"

Editar:

Recordé otra implementación que encontré hace un tiempo llamada RMI Doves 1.0: Solución para el problema del firewall de Java RMI es posible que desee echarle un vistazo también.

en su servidor ponga el código como este:

RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top