2010-11-21 37 views
0

Disons que l'adresse IP publique du routeur est 92.1.85.179
L'IP locale de l'ordinateur avec le serveur est 192.168.0.2
Le routeur est configuré pour renvoyer 92,1 .85.179: 5678 à 192.168.0.2:5678Problèmes de connexion à un serveur RMI qui se trouve derrière un routeur

Dans le serveur je:

System.setProperty("java.rmi.server.hostname" , "92.1.85.179"); 
Registry registry = LocateRegistry.createRegistry(5678); 
registry.rebind("TheWebServer" , webServerInt); 

le client a:

Registry registry = LocateRegistry.getRegistry("92.1.85.179" , 5678); 
server = (WebServerInterface) registry.lookup("TheWebServer"); 

Lorsque le client est sur le réseau local sur le serveur c'est ok. Lorsque le client est en dehors du réseau local, il obtient java.rmi.ConnectException: Connexion refusée à l'hôte: 192.168.0.2;

Il est évident que le serveur donne au client l'adresse IP de 192.168.0.2 car elle n'apparaît pas dans le code, ce que je pensais que System.setProperty("java.rmi.server.hostname" , "92.1.85.179"); était supposé changer.

Toute contribution serait grandement appréciée.

Répondre

1

Vous devez également exporter vos objets distants sur le port 5678 et vous devez définir java.rmi.server.hostname avant d'exporter les objets distants.