RMI RemoteException, warum?

Technoblade

Erfahrenes Mitglied
Hi,

Ich probiere gerade für ein Schulprojekt ein wenig mit rmi herrum.
Zum testen habe ich folgenden Code geschrieben:

Code:
import java.rmi.*;
import java.rmi.registry.*;

public class TestServer
{
    
    public TestServer()
    {
        String name = "//mein-pc:1099/MeinTestServer";
        try
        {
            TestObjekt testObjekt = new TestObjekt();
            Naming.bind(name, testObjekt);
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
        }
    }
    
    public void testen()
    {
        try
        {
            LocateRegistry.createRegistry(1099);
        }
        catch(Exception e)
        {
            System.err.println("Port bereits belegt");
        }
    }
}

Es lässt sich alles wie gewünscht compilen. Ein TestObjekt hat lediglich eine Methode die einen String zurrückliefert der dann vom Client ausgegeben wird. Halt ein simpler Test um die Funktionsweise zu testen. Die Problematik ist nur, dass ich bei "Naming.bind(name, testObjekt);" eine RemoteException bekomme und leider rein gar keine Ahnung habe warum. Hinzukommt, dass RemoteExceptions so wie ich es aus den Klassenbibliotheken herrauslese recht häufig verwendet werden.
Es wäre sehr hilfreich, wenn jemand den grund wüsste, meine einzige Vermutung ist, dass der String nicht richtig formatiert ist.

MfG Technoblade

PS: Sollte diese Frage einigen zu trivial erscheinen oder nach Meinung einiger schlecht recherchiert worden sein so bitte ich das auch zu sagen.
 
Hallo,

ich vermute mal, dass deine RMI Registry noch nicht gestartet ist (Die testen() Methode muss einmal ausgeführt werden, BEVOR du Remote Objekte veröffentlichen / suchen / ansprechen kannst).

Schau doch mal hier:
http://www.tutorials.de/forum/java/231847-rmi-unter-java-5-a.html
http://www.tutorials.de/forum/java/...stubs-und-skeletons-dank-dynamic-proxies.html
http://www.tutorials.de/forum/java/187420-eclipse-und-rmi.html
http://www.tutorials.de/forum/java/269599-rmi-als-eclipse-plug.html

Gruß Tom
 
Hallo,

würde sagen der erste Fehler liegt hier.

String name = "rmi://mein-pc:1099/MeinTestServer";

Ansonsten gibt es hier mehr zum Thema.

Gruss
 
Vielen Dank für die Hilfe, es funktioniert jetzt, mit folgendem Code:

Code:
import java.rmi.*;
import java.rmi.registry.*;

public class TestServer
{
    
    public TestServer()
    {
        try
        {
            Registry registry = LocateRegistry.createRegistry(19192);
            TestObjekt testObjekt = new TestObjekt();
            registry.rebind("TestServer", testObjekt);
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
        }
    }
}

Wenn jemand Probleme weiß, die bei dieser Implementierung später zu Problemen führen bitte sagen, bin auch erst in der 11. Klasse.
 
Zuletzt bearbeitet:
Zurück