[Erledigt] RMI - Fehlermeldung beim Start des Servers
-
Hallo Leute,
ich sitze nun 3 Stunden an der gleichen Fehlermeldung und komme einfach nicht dahinter.
Fehlermeldung:java.rmi.server.ExportException: object already exported
Platform: Linux und SDK 1.6
Eingabefolge:$ pkill rmiregistry $ rmiregistry & $ java rmi_test.server.MyDateServer
Der Server: MyDateServer
package rmi_test.server; import java.rmi.AlreadyBoundException; import java.rmi.RMISecurityManager; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.UnicastRemoteObject; import java.util.Date; import rmi_test.DateServer; /** * @version 21. September 2007 */ public class MyDateServer extends UnicastRemoteObject implements DateServer { /** Creates a new instance of MyDateServer */ public MyDateServer() throws RemoteException { super(); } /** Dies ist die Remote-Methode aus dem Interface DateServer */ public String getDate() { Date date = new Date(); return date.toString(); } public static void main(String[] args) { try { System.setSecurityManager(new RMISecurityManager()); MyDateServer myDateServer = new MyDateServer(); DateServer stub = (DateServer) UnicastRemoteObject.exportObject(myDateServer, 0); Registry registry = LocateRegistry.getRegistry(); registry.rebind("DateServer", stub); System.out.println("DateServer bound!"); } catch (RemoteException ex) { System.err.println(ex); } } }
Das Interface DateServer:
package rmi_test; import java.rmi.Remote; import java.rmi.RemoteException; public interface DateServer extends Remote { public String getDate() throws RemoteException ; }
Woran kann das liegen? Ich komme einfach nicht dahinter. Im Internet steht irgendwas von besetzten ports. Das schließe ich aber eher aus.
Für Eure Antworten wäre ich sehr dankbar.
Gruß
-
Danke falls sich jemand daran versucht hat. Das Problem habe ich nun erledigt.
Fehler: dasextends UnicastRemoteObject
muß weg. Auch das mit dem Securitymanager liefert nur fehler und wird in dieser Form gelöscht. Hier noch einmal rmi_test.server.MyDateServer
package rmi_test.server; import java.rmi.AlreadyBoundException; import java.rmi.RMISecurityManager; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.UnicastRemoteObject; import java.util.Date; import rmi_test.DateServer; /** * @version 22. September 2007 */ public class MyDateServer implements DateServer { /** Creates a new instance of MyDateServer */ public MyDateServer() throws RemoteException { super(); } public String getDate() { Date date = new Date(); return date.toString(); } public static void main(String[] args) { try { MyDateServer myDateServer = new MyDateServer(); DateServer stub = (DateServer) UnicastRemoteObject.exportObject(myDateServer, 0); Registry registry = LocateRegistry.getRegistry(); registry.rebind("DateServer", stub); System.out.println("DateServer bound!"); } catch (RemoteException ex) { System.err.println(ex); } } }
Gruß