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:
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:
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
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:
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)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at server.Server_Stub.getInfo(Server_Stub.java:39)
at server.DumpServerInfo.main(DumpServerInfo.java:12)
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