Kann ich am EJB Container mit Objekten arbeiten, die er selber nicht kennt?

kwyjibo_84

Mitglied
Hallo zusammen.

Folgendes Szenario:
Ich hab eine Stateless-Session-Bean die hat eine Methode void macheWasMit(Object o)

Dieser Methode würde ich gerne jedes beliebige Objekt übergeben. D.h. ein Client kennt das Objekt z.B. MySuperCuteObject (der Server kennt es aber nicht).

Wenn ich jetzt die Methode am Server aufrufe (machWasMit(superCute)) dann sagt zumindestens JBoss:

Code:
Exception in thread "main" java.lang.ClassNotFoundException: No ClassLoaders found for: de.test.MySuperCuteObject (no security manager: RMI class loader disabled)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:371)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
      at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
      at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
...

Ist das nur typisch für den JBoss. Stehe ich da bei meinem Vorhaben total auf dem Schlauch.

Danke,
Sebastian
 
Verstehe ich das richtig:
Du nimmst also ein Object vom Client, das nicht in der Bib. des Servers liegt und willst auf dessen Methoden zugreifen?
 
Hallo,

entweder schickst du deine Daten in generischer Form Mit Maps / Lists primitiven (Wrappern) und Strings und sonstige serialisierbare Typen die der Server kennt.


Eine andere Möglichkeit wäre das RemoteClassLoading von JBoss zu verwenden (dafür muss dann auch IMHO der RMI Security Manager verwendet werden).
http://www.jboss.org/jbossremoting/docs/guide/2.2/html/ch07.html

Damit kann man konfigurieren, dass der Client sich benötigte Klassen die er lokal nicht findet vom Server zieht. Ob das auch in der anderen Richtung funktioniert muss man schauen.

Gruß Tom
 

Neue Beiträge

Zurück