Come utilizzare RMI con il client applet dietro un firewall?
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);