# RMI Klasse wird unter falschem Pfad gesucht



## chriis (12. Jul 2010)

Moin,

bei meiner Server-Client-Anwendung bekomme ich folgende Fehlermeldung:


```
Caused by: java.lang.ClassNotFoundException: de.test.be.processor.IAgentProcessor (no security manager: RMI class loader disabled)
	at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:535)
	at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
	at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
	at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
	at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1531)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
	... 37 more
```

Meine RMI Registry gibt ein Objekt vom Typ _de.test.processor.AgentProcessor_ als _de.test.processor.IAgentProcessor_ bekannt, letzteres ist ein Interface was beiden (Server/Client) als .jar zur Verfügung steht.

Nun sagt mir die Exception immer dass die Klasse _de.test.*be*.processor.IAgentProcessor_ benötigt wird. Lauf suche in Eclipse ist dieser Pfad aber nirgends in meinem Projekt mehr vorhanden. Wo könnte diese alte Pfad noch drin stehen. Ich habe beide Projekte bereits neu kompiliert und alle vorhandenen .class Dateien gelöscht, um ein kompilieren mit alten Quellen auszuschließen.

Edit: Ich habe gerade erst die gemeinsamen Dateien in eine .jar für beide exportiert, davor hat noch alles geklappt. Wenn ich die Dateien wieder an ihren originalplatz verschiebe läuft es wieder.


----------



## fastjack (12. Jul 2010)

Irgendwo werden alte Jars benutzt. Einfach mal per TotalCommander danach suchen und die in die Jars schauen, ob test.be dort vorhanden ist. Werden irgendwo alte Serialisierungen verwendet?


----------



## chriis (12. Jul 2010)

Also ich hab nochmal alle .jars durchgeguckt, das sind alles die Aktuellen. 
Ich hab die serialUIDs nicht verändert, falls du das meinst.


----------



## SlaterB (12. Jul 2010)

ob es dieses Problem ist, könntest du recht eindeutig klären, indem du die Klasse umbenennst,
wenn dann noch eine Fehlermeldung mit dem alten Klassennamen auftaucht, dann besteht fast keine andere Möglichkeit als doch eine alte jar

schau dir im Programm die Umgebungsvariable "java.class.path" an, gehe die Verzeichnisse Jars genau in Reihenfolge durch,
im Java-Programm nach Klassen oder jars schauen, vielleicht kannst du das Datum der Erstellung ausgeben oder so,

notfalls das Projekt komplett neu, entscheidend ist ja wohl der RMI-Server, den unter anderen Namen registrieren


----------



## chriis (12. Jul 2010)

Ok, ihr hattet natürlich recht..war ne alte .jar und nicht nur das..ich hab mich zu einer alten Version des Servers verbunden, der parallel lief. 
Naja nun bekomm ich eine neue Exception..mal gucken was die wieder bedeutet.

```
org.springframework.dao.InvalidDataAccessApiUsageException
```


----------

