Pergunta

Como posso usar o RMI com um cliente de applet atrás de um firewall?

Como posso usar o RMI com um servidor de firewall e um cliente de applet de firewall? (Se possível)

Eu sei que o servidor RMI usa a porta 1099 (por padrão, mas isso é configurável); No entanto, depois disso, a comunicação requer um novo soquete em uma porta aleatória diferente. Sei também que você pode definir o proxy no cliente para o RMI sobre o tunelamento HTTP, que, em teoria, deve resolver meu problema. Mas não posso fazer funcionar (tentei definir as propriedades ambientais no meu cliente XP, mas o Internet Explorer continua ignorando -as).

Outras dicas

Se o código dos servidores estiver em sua mão, você também poderá restringir o RMI a usar uma porta predificada, fornecendo um rmisocketfactory personalizado, conforme descrito aqui: http://insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing.html

(Observe especialmente a dica de que isso pode causar problemas se você usar o JMX em paralelo)

Ainda não o procurei profundamente Linermi.

Você pode querer dar uma olhada nele, pois se voltou para o uso da Internet e menciona "sombrear os clientes de tal maneira que podem estar por trás de uma rede local, roteador ou firewall";

Editar:

Lembrei -me de outra implementação que me deparei um pouco ligada RMI Doves 1.0: Solução para Java RMI Firewall Problem Você pode querer dar uma olhada nessa também.

No seu servidor, coloque o código como este:

RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top