# RMI-Problem: Connection refused to host: 127.0.0.2



## tfa (11. Jan 2008)

Hallo!

Ich habe ein Problem mit RMI: Auf einem Linux-Rechner läuft der RMI-Server bzw. die Registry.
Ein Windows-Client verbindet sich mit dem Server und ruft RMI-Methoden auf.
Eigentlich ganz einfach. Hier mal ein wenig Beispiel-Code:

```
// im SERVER
try {
    LocateRegistry.createRegistry(PORT);

    Registry registry = LocateRegistry.getRegistry("10.100.100.100", 1099);

    System.out.print("Server-Bind..");
    registry.rebind("MeinServiceName", server);
    System.out.println("ok");
}
catch (RemoteException e) {
    e.printStackTrace();
    fail();
} 


**************************************************


// im CLIENT
public static void main(String[] args) {
    try {
        System.out.println(((RemoteServiceImpl) Naming.lookup("//10.100.100.100/" + "MeinServiceName"))
            .getInfo());
    }
    catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }
}
```

Wenn ich das alles lokal auf einem Rechner laufen lasse, funktioniert es auch wunderbar. 
Läuft der Server allerdings auf dem Linux-Rechner, schmeißt der Client folgende Fehlermeldung beim Aufruf der RMI-Methode:



> java.rmi.ConnectException: Connection refused to host: 127.0.0.2; nested exception is:
> java.net.ConnectException: Connection refused: connect
> at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
> at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
> ...



Mir ist die 127.0.0.2 rätselhaft. Was soll das bedeuten? Wenn ich den Server nicht laufen lasse und dann den Client starte, erhalte ich  "Connection refused to host: 10.100.100.100" wie erwartet.

Das Linux ist Suse-Linux mit deaktivierter Firewall. Client und Server laufen mit Java 1.4.2.

Ich habe spaßeshalber den Server mal auf einem anderen Rechner (mit Debian-Linux) laufen lassen. Dort funktioniert es auch! Die beiden Linux-Rechner  hängen im gleichen Netz (stehen genau nebeneinander). 
Was muss ich an dieser Suse-Konfiguration ändern, damit es auch dort läuft?
Weiß jemand Rat?

Danke
tfa


----------



## Niki (11. Jan 2008)

Mach mal statt

```
Registry registry = LocateRegistry.getRegistry("10.100.100.100", 1099);
```

nur

```
Registry registry = LocateRegistry.getRegistry(1099);
```

vielleicht bewirkt das ja was


----------



## maki (11. Jan 2008)

Was steht denn in der /etc/hosts?


----------



## tfa (11. Jan 2008)

@Niki: So hatte ich es am Anfang. Klappte leider nicht. Trotzdem danke für den Tipp.

@maki: Da stand doch tatsächlich was drin in /etc/hosts unter 127.0.0.2!! Ich kann nicht dran erinnern, da je was hinzugefügt zu haben (Suse halt, immer das selbe). Ich hab den Eintrag rausgeworfen, jetzt klappt es. 1000 Dank  :applaus:


----------



## maki (12. Jan 2008)

> Suse halt, immer das selbe


Ja, bin auch kein Fan von Suse.
Erstmal machen die so vieles anders, und dann gibt's nicht so viel Info im Netz wie über Debian/Ubuntu.


----------

