Eigene Objekte per RMI übergeben

Bud

Aktives Mitglied
Hallo Leute! ;)

Ich habe eine kleine RMI-Anwendung programmiert. Jetzt möchte ich eigene Klassen definieren und Objekte dieser Klasse als Rückgabewerte übergeben.

Sowohl auf dem Server als auch auf dem Client habe ich einfach die Klasse definiert. Ich kann Innerhalb des Servers auf die Objekte und die die zugehörigen Methoden problemlos zugreifen.

Wenn ich aber auf dem Client auf die Methode "WERT.AUTO" des Servers zugreifen will, gibt es als Rückgabewert nur ein "NULL".

Server:

Java:
import java.rmi.*;

public interface SampleServer extends Remote 
{
 public mv WERT (int zeile) throws RemoteException;
}

Java:
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;

public class SampleServerImpl extends UnicastRemoteObject implements SampleServer
{
  SampleServerImpl() throws RemoteException{ super(); }

public mv WERT (int zeile) throws RemoteException{
	mv rueckgabe = null;
	rueckgabe.AUTO="22";
	System.out.println(rueckgabe.AUTO); // Ausgabe ist ok : 22			
	return rueckgabe;
 }			

  public static void main(String args[]) {
    //set the security manager
    try {
      //  System.setSecurityManager(new RMISecurityManager());
        SampleServerImpl Server = new SampleServerImpl();
        LocateRegistry.createRegistry(1080);
        Naming.rebind("SAMPLE-SERVER" , Server);
        System.out.println("Server waiting.....");
      }
    catch (java.net.MalformedURLException me){System.out.println("Malformed URL: " + me.toString());}
    catch (RemoteException re){ System.out.println("Remote exception: " + re.toString()); }
  }
}

Client:

Java:
import java.rmi.*;

public interface SampleServer extends Remote 
{
 public mv WERT (int zeile) throws RemoteException;
}

Java:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.rmi.Naming;
import java.rmi.RemoteException;


public class Client extends Applet {
  public void main () {

	      try  
	        {  
	          System.out.println("Security Manager loaded");  
	          String url = "//192.168.1.191/SAMPLE-SERVER";  
	          SampleServer remoteObject = (SampleServer)Naming.lookup(url);  
	          System.out.println("Got remote object");  
	          System.out.println(remoteObject.WERT(0).AUTO); // VERFLIXT: HIER WIRD NUR "NULL" AUSGEGEBEN.
	          
	        }  
	      catch (RemoteException exc)   { System.out.println("Error in lookup: " + exc.toString());   }  
	      catch (java.net.MalformedURLException exc)  {  System.out.println("Malformed URL: " + exc.toString());  }  
	      catch (java.rmi.NotBoundException exc)  { System.out.println("NotBound: " + exc.toString());  }  
    } //main

}



Sowohl Client als auch Server haben die folgende Klasse im Ordner /src

Java:
class mv
{
 static String AUTO; 
 static String FAHRER; 
}

Was mache ich falsch?
 

tfa

Top Contributor
Warum sind "AUTO" und "FAHRER" deiner mv-Klasse static? (Von den Conding Conventions mal abgesehen).
Die mv-Objekte haben Daten, da es keine Member-Attribute gibt. Lass also das static weg. Außerdem muss die Klasse serializable sein.
 

Bud

Aktives Mitglied
Hey tfa,

vielen Dank für die Hinweise. Genau das war es. Die Klasse muss "serializable" sein - dann kann sie auch übertragen werden. Und static ist natürlich nicht nötig!

1000Dank! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
T Eigene Scriptsprache Netzwerkprogrammierung 25
P Socket Client empfängt nur eigene Text-Eingaben Netzwerkprogrammierung 30
Saxony RMI - eigene Registry (no security manager: RMI class loader disabled) Netzwerkprogrammierung 6
G Eigene IP-Adresse hinter Router ermitteln Netzwerkprogrammierung 1
M Eigene IP-Adresse Netzwerkprogrammierung 37
T JSON-Objekte richtig parsen Netzwerkprogrammierung 8
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
A RMI RMI - Thread Objekte übertragen und auf anderer Machine weiterlaufen lassen Netzwerkprogrammierung 0
C List Deserialisierung entfernt Objekte Netzwerkprogrammierung 2
F HTTP Serialisierte Objekte aus Datei von Server Netzwerkprogrammierung 1
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
V Socket Objekte werden nicht aktualisiert Netzwerkprogrammierung 2
S Socket Über UDP Objekte verschicken Netzwerkprogrammierung 9
S Kapselung der Netz-Objekte Netzwerkprogrammierung 3
B verschiedene Serialisierte Objekte identifizieren? Netzwerkprogrammierung 5
T Objekte im NIO unblocking mode versenden Netzwerkprogrammierung 11
C Socket ObjectInputStream liest nur Objekte der jeweiligen Programminstanz Netzwerkprogrammierung 5
G Frage zu Servlets und deren Objekte + Bilder in Servlets anzeigen? Netzwerkprogrammierung 11
G Objekte per TCP verschicken + Thread Netzwerkprogrammierung 4
T Laufen Objekte, die vom Cajo-Server geliefert werden, lokal auf dem Client? Netzwerkprogrammierung 4
T Inputstream -> verschiedene Objekte lesen Netzwerkprogrammierung 3
I Objekte über das Netzwerk Netzwerkprogrammierung 5
M Messenger - String oder Objekte Netzwerkprogrammierung 4
S Netzwerk und Objekte Netzwerkprogrammierung 5
S RMI 1.) Entfernte Objekte "Zwischenspeichern" 2.) Threadsicherheit Netzwerkprogrammierung 2
T rmi ssl zu große Objekte übergeben -> Exception Netzwerkprogrammierung 10
A Konflikt: Blocking und Non-Blocking bei Objekte versenden Netzwerkprogrammierung 4
N RMI und Datenbank Objekte Netzwerkprogrammierung 3
P Objekte über DatagramSocket versenden Netzwerkprogrammierung 12
R Mittels BufferedReader Objekte lesen? Netzwerkprogrammierung 5
M Objekte senden zwischen Java und PHP mit SOAP Netzwerkprogrammierung 9
A Objekte in übergebenen Objekten mit WebServices? Netzwerkprogrammierung 6
A RMI wie kann ich objekte übergeben? Netzwerkprogrammierung 5
P Serialialiserte Objekte übers Netzwerk verschicken Netzwerkprogrammierung 9
S Objekte zwischen Client und Server über Sockets senden Netzwerkprogrammierung 2
E Bilder übergeben Netzwerkprogrammierung 16
E Socket Werte mit DataInput- und Output- Stream übergeben Netzwerkprogrammierung 1
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
B Daten an Javaprogramm per URI Aufruf übergeben Netzwerkprogrammierung 7
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
L HTTP Daten an Server übergeben Netzwerkprogrammierung 2
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
M String an PHP Script aus Java übergeben Netzwerkprogrammierung 12
L Sockets übergeben Netzwerkprogrammierung 4
O Methoden vom Server zu Client übergeben Netzwerkprogrammierung 2
H Objekt von JSP an Servlet übergeben Netzwerkprogrammierung 4
P Buchstaben übergeben Netzwerkprogrammierung 12
C Webservice, ArrayList übergeben Netzwerkprogrammierung 3
A Streams per RMI übergeben Netzwerkprogrammierung 6
D HTTP Request erstellen (Form Name übergeben!) Netzwerkprogrammierung 3
D wie kann ich rmic ein .jar file übergeben? Netzwerkprogrammierung 3
E In Webseite einloggen/ GET, POST an PHP-Script übergeben Netzwerkprogrammierung 2
M IP Adressen auslesen und in Windows/Linux übergeben Netzwerkprogrammierung 5

Ähnliche Java Themen


Oben