carookee - group communication for you
Home / JavaForum / Java allgemein
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.904 User online
1 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 1994 von 2212 (90%) |<   <   >   >|

Autor N.Elbai
Datum 13.03.03, 13:04
Betreff Remote Method Invocation (RMI)


Ich bitte um Ihre Hilfe und würde mich auf eine Antwort freunen.

ich habe ein Problem beim Ausführen des unten angegeben RMI Beispiel. Sowohl das Kompilieren als auch die Erzeugung der Stub-Klasse des Servers(durch rmic RMIServerImpl -in diesem Beispiel) als auch die RMI-Registry durch den Befehl rmiregistry funktionieren einwandfrei. Wenn ich aber die Klasse RMIServerImpl starte, bekomme ich folgende Fehlermeldung:
----
--> java RMIServerImpl
Fehler beim Instanziieren des Remote-Objektes:
RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: RMIServerImpl_Stub

-------
Code:


/* RMIServer.java */
import java.rmi.*;

public interface RMIServer extends Remote
{
    // Methode des Servers, die remote
    // ausgeführt werden kann
    void setString (String str) throws RemoteException;
}


--------------------
/* RMIServerImpl.java */
import java.rmi.*;
import java.net.*;
import java.rmi.server.*;

public class RMIServerImpl extends UnicastRemoteObject
implements RMIServer
{
    public RMIServerImpl () throws RemoteException
    {
        try
        {
            // Registrieren des Servers bei RMIRegistry
            Naming.rebind ("rmi:///Server", this);
            System.out.println ("Server gebunden");
        }
        catch (MalformedURLException e)
        {
            // Wenn die URL falsch angegeben wurde ...
            System.out.println ("URL ungültig:\n" + e.getMessage ());
        }
    }
    
    // Methode, die remote ausgeführt werden kann
    public void setString (String str)
    {
        // Ausgabe des vom Client gesendeten Strings
        System.out.println (str);
    }
    
    public static void main (String[] args)
    {
        try
        {
            // Instanziieren des Remote-Objektes
            RMIServerImpl server = new RMIServerImpl();
        }
        catch (RemoteException e)
        {
            // Wenn Remote-Objekt nicht erzeugt werden kann ...
            System.out.println ("Fehler beim Instanziieren des " +
            "Remote-Objektes:\n" + e.getMessage());
        }
    }
}

---------------------
/* RMIClient */
import java.rmi.*;
import java.net.*;

public class RMIClient
{
    public static void main (String[] args)
    {
        try
        {
            // Suchen des Servers in RMIRegistry
            RMIServer server =
            (RMIServer)Naming.lookup ("rmi://localhost/Server");
            // Ausführen einer Methode im Server
            server.setString ("Hallo Server");
        }
        catch (NotBoundException e)
        {
            // Wenn der Server nicht registriert ist ...
            System.out.println ("Server ist nicht gebunden:\n" +
            e.getMessage ());
        }
        catch (MalformedURLException e)
        {
            // Wenn die URL falsch angegeben wurde ...
            System.out.println ("URL ungültig:\n" + e.getMessage ());
        }
        catch (RemoteException e)
        {
            // Wenn während der Kommunikation ein Fehler auftritt
            System.out.println ("Fehler während Kommunikation:\n" +
            e.getMessage ());
        }
    }
}



Diskussionsverlauf:
    Re: Remote Method Invocation (RMI)
Remote Method Invocation (RMI)

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com