This blog has moved to
http://blog.matthias-reining.com

Die bestehenden Artikel bleiben vorerst alle bei blogspot. Neue Artikel veröffentliche ich allerdings nur noch auf http://blog.matthias-reining.com

Montag, 1. Dezember 2008

ERROR [STDERR] javax.ejb.EJBException: java.lang.IllegalArgumentException: Wrong target.

Diese Fehlermeldung hat mich die letzten Stunden zur Verzweiflung gebracht, da ich auch im Web hierzu nichts Brauchbares finden konnte.

Szenario: Eclipse EJB3 Projekt(e) – 3 Projekte: <Project>, <Project>EJB, <Project>Web.

Die Exception fliegt, wenn von der Webapplikation ein SLSB aufgerufen wird und als Parameter eine Persitent Entity übergeben wird. Die Persistent Entity ist im EJB Projekt heimisch und wird der Webapplikation per Eintrag im Manifest.MF bekannt gemacht.
Wird null als Objekt übergeben funktioniert der "entfernte" Methodenaufruf (es handelt sich in meinem Fall aber nur um einen Local Call). Liegt also an dem Objekt selbst…

Natürlich wurde an den Eclipse Projekteinstellungen "wild" herumgedreht um alles mal zu probieren…

Hierbei wurde in den Projekt Properties unter "Java EE Module Dependencies" im Tab "Web Libraries" das entsprechende Projekt EJB Module ausgewählt. à Böses Faul!!! Die Abhängigkeit zwischen Web-Projekt und EJB-Projekt innerhalb einer EJB Anwendung darf nur über die Einstellungen "Java EE Module Dependencies -> J2EE Modules" vorgenommen werden. Hier kann dann das EJB Projekt ausgewählt werden.

Anschließend neu kompilieren bzw. einfach das AppServer (JBoss) Arbeitsverzeichnis "cleanen" und happiness ;-)

Keine Kommentare:

Kommentar veröffentlichen