Question

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 transmettre 92.1.85.179:5678 à 192.168.0.2:5678

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 au serveur, il est ok. Lorsque le client est en dehors du réseau local, il se 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 il ne figure pas dans le code, que je pensais que System.setProperty( "java.rmi.server.hostname" , "92.1.85.179" ); était censé changer.

Toute entrée serait grandement apprécié.

Était-ce utile?

La solution

Vous devez exporter vos objets à distance sur le port 5678 aussi, et vous devez définir java.rmi.server.hostname avant d'exporter les objets à distance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top