RMI

Status
Nicht offen für weitere Antworten.

Java-Problems

Bekanntes Mitglied
Hey Hey,
kurze Frage:

Ich verwende RMI und habe folgendes Problem:
Mein Server öäuft nur, wenn ich die Methoden aus dem Interface auskommentiere und die @override Notitzen auch. Nur dann läuft er, ansonsten bringt er mir immer ne Fehlermeldung mit dem Konstruktor... WOran liegts?

[Java]
public interface Service extends Remote {




public String abfrageWare(String aktion);


}
//----------------------------------

public class Server extends UnicastRemoteObject implements Service {

protected Server() throws RemoteException {
super();
}

@Override
public String abfrageWare(String aktion) {
}

public static void main(String... args) throws Exception {
// RMI-Registry starten, Server erzeugen und an Registry binden
// Standard-Port ist 1099 (Registry.REGISTRY_PORT)

LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
Registry registry = LocateRegistry.getRegistry(Registry.REGISTRY_PORT);
registry.rebind("PalindromService", new Server());
System.out.println("Server läuft...");
}

[/Java]
 

Java-Problems

Bekanntes Mitglied
Exception in thread "main" java.rmi.server.ExportException: remote object implements illegal remote interface; nested exception is:
java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.String Service.abfrageWare(java.lang.String)
at sun.rmi.server.UnicastServerRef.exportObject(Unknown Source)
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source)
at java.rmi.server.UnicastRemoteObject.exportObject(Unknown Source)
at java.rmi.server.UnicastRemoteObject.<init>(Unknown Source)
at java.rmi.server.UnicastRemoteObject.<init>(Unknown Source)
at Server.<init>(Server.java:19)
at Server.main(Server.java:115)
Caused by: java.lang.IllegalArgumentException: illegal remote method encountered: public abstract java.lang.String Service.abfrageWare(java.lang.String)
at sun.rmi.server.Util.checkMethod(Unknown Source)
at sun.rmi.server.Util.getRemoteInterfaces(Unknown Source)
at sun.rmi.server.Util.getRemoteInterfaces(Unknown Source)
at sun.rmi.server.Util.createProxy(Unknown Source)
... 7 more
 

Schandro

Top Contributor
weil du nichts zurückgibts. Die Methode abfrageWare muss irgendwann einen String returnen.

€dit: Den Post hab ich geschrieben bevor du die Fehlermeldung gepostet hast.
 

Java-Problems

Bekanntes Mitglied
die Verweise stimmen jetzt nicht, aber er zeigt einmal auf den Konstrukotr (in dem Fall hier Zeile 15) und einmal in der main auf Zeile 28, also den Aufruf des Konstruktors.
Das komische ist, dass wenn ich es ohne dem Interface mache und die Methode so einbaue, alles fehlerfrei läuft. Es hängt irgendwie mit dem Konstruktor und dem Interface zusammen....

Es funktioniert auch nicht wenn ich schreib:

return "";
das dass rein muss, weiß ich schon, kommt auch noch... ;-)
 
Status
Nicht offen für weitere Antworten.

Oben