[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: das

    extends 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ß


Anmelden zum Antworten