Domanda

Come posso usare RMI con un client applet dietro un firewall?

Come posso usare RMI con un server firewall e client applet firewall? (Se possibile)

So che il server RMI utilizza la porta 1099 (per impostazione predefinita, ma è configurabile); tuttavia dopo ciò la comunicazione richiede un nuovo socket su una porta casuale diversa. So anche che è possibile impostare il proxy sul client per il tunneling RMI su HTTP che in teoria dovrebbe risolvere il mio problema. Ma non riesco a farlo funzionare (ho provato a impostare le proprietà ambientali sul mio client XP, ma Internet Explorer continua a ignorarle).

Altri suggerimenti

Se il codice del server è nelle tue mani, puoi anche limitare l'RMI all'utilizzo di una porta predefinita fornendo una RMISocketFactory personalizzata come descritto qui: http://insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing.html

(Nota in particolare il suggerimento che potrebbe causare problemi se si utilizza JMX in parallelo)

Non ho ancora esaminato a fondo il mio io, ma mentre cercavo un progetto che sto facendo, mi sono imbattuto in LipeRMI .

Potresti volerlo dare un'occhiata in quanto orientato all'utilizzo di Internet e menziona "offusca i client in modo che possano trovarsi dietro una rete locale, router o firewall; "

Modifica:

Ho ricordato un'altra implementazione che mi sono imbattuto qualche tempo fa RMI Doves 1.0: Soluzione per il problema del firewall Java RMI potresti voler dare un'occhiata anche a quello.

nel tuo server inserisci il codice in questo modo:

RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top