# RMI - Objekt als Rückgabeparameter



## PeiWei (28. Dez 2006)

Hallo,

momentan hänge ich bei meiner RMI-Anwendung fest.
Die Situation ist folgende: ich habe einen Client und einen Server, wobei der *Server* folgende Klasse bereitstellt:


```
public class RmiDBImpl implements RmiDB
{
    public ArrayList<ProfileInfo> getEntries()
    {
	ProfileInfo testProfile = new ProfileInfo();
	testProfile.id = 1;
	testProfile.firstname = "Vorname";
	testProfile.name = "Nachname";
	    
	ArrayList<ProfileInfo> a = new ArrayList<ProfileInfo>();
	a.add( testProfile );
	System.out.println( a.get(0).id + ", " + a.get(0).firstname + ", " + a.get(0).name );
	return a;
    }
}
```

Die Daten aus der Liste werden vom Server korrekt ausgeschrieben und damit auch zurückgegeben.
Das Klasse "ProfileInfo" ist sowohl auf dem Client, als auch auf den Server vorhanden und sieht so aus:


```
public class ProfileInfo implements Serializable
{
    static int id;
    static String firstname;
    static String name;
}
```


Mein *Client* greift auf die Funktion getEntries() zu, das funktioniert soweit.
Das Problem dabei: die Attribute verlieren ihren Wert, es wird "0, null, null" ausgeschrieben :cry: :


```
ArrayList<ProfileInfo> myList = myDB.getEntries();
    System.out.println( myList.get(0).id + ", " + myList.get(0).firstname + ", " + myList.get(0).name );
```

Was hab ich falsch gemacht bzw. wo liegt das Problem?
Brauche da echt mal ein bisschen Hilfe, wär cool, wenn jemand eine Idee hat!


----------



## Guest (28. Dez 2006)

Mach' das static raus. Static und transient wird nicht serialisiert. Wo du gerade dabei bist, 
füge noch serialVersionUID in die Klasse ProfileInfo ein.

z.B.
	
	
	
	





```
public class ProfileInfo implements Serializable
{
   private static final long serialVersionUID = 4200743547199726719L;

   private int id; 
   private String firstname; 
   private String name;

   ... Getter und Setter
}
```


----------



## Guest (28. Dez 2006)

oder von mir aus

```
public class ProfileInfo implements Serializable 
{ 
   private static final long serialVersionUID = 4200743547199726719L; 

   public int id; 
   public String firstname; 
   public String name; 

}
```


----------



## PeiWei (28. Dez 2006)

super, danke!

jetzt läufts einwandfrei


----------

