ClassCastException nach JDNI Lockup

Diskutiere ClassCastException nach JDNI Lockup im Application Tier Forum; Hi Folks, ich habe auf einem Glassfish-Server (3.1.2) zwei Projekte deployed. Ein EJB Projekt, welches für meine Logik und Datenhaltung...

  1. JogiBär
    JogiBär Guest
    Hi Folks,

    ich habe auf einem Glassfish-Server (3.1.2) zwei Projekte deployed. Ein EJB Projekt, welches für meine Logik und Datenhaltung zuständig sein soll und ein DynmicWebProject für die GUI.

    Das EJB Projket habe ich im Build Path hinzugefügt.
    [​IMG]

    Innerhalb des EJB Projektes habe ich eine SessionBean:

    Code (Java):

    /**
     * Session Bean implementation class ClientManagementBean
     */

    @Singleton
    @LocalBean
    public class ClientManagementBean{

        /**
         * Default constructor.
         */

        public ClientManagementBean() {
            // TODO Auto-generated constructor stub
        }

     // internal stack
        private List<UserClient> clients = new ArrayList<UserClient>();
    ...
     
    mit entsprechendem Business-Interface definiert:
    Code (Java):


    @Remote
    public interface ClientManagementBeanRemote{

        public void addClient(UserClient client);
        ...
     
    Nun möchte ich im WebProjekt auf diese Klasse zugreifen. Hierzu habe ich folgenden Code geschrieben:
    Code (Java):

    Properties props = new Properties();

                props.setProperty("java.naming.factory.initial",
                        "com.sun.enterprise.naming.SerialInitContextFactory");

                props.setProperty("java.naming.factory.url.pkgs",
                        "com.sun.enterprise.naming");

                props.setProperty("java.naming.factory.state",
                        "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");

                Context context = new InitialContext(props);

                Object initObj = context
                        .lookup("ClientManagementBean");
                ClientManagementBean clientManager = (ClientManagementBean) initObj;
     
    Der Lockup funktioniert auch und gibt mir ein entsprechendes Objekt zurück. Mein Problem besteht nun im nachfolgenden Cast:
    Code (Text):
    ClientManagementBean clientManager = (ClientManagementBean) initObj;).
    Dieser verursachte zunächst einmal "java.lang.NoClassDefFoundError: logic/mgntBeans/ClientManagementBean". Daraufhin habe ich das EJB project als EJB jar exportiert und im WebProjekt unter WEB-INF/lib/ hinzugefügt. Nun bekomme ich jedoch eine ClassCastException:

    Code (Text):

    java.lang.ClassCastException: logic.mgntBeans.__EJB31_Generated__ClientManagementBean__Intf____Bean__ cannot be cast to logic.mgntBeans.ClientManagementBean
     
    Nach einiger Recherche habe ich noch im Classpath die gf-client.jar hinzugefügt, was jedoch zu keiner Verbesserung führte.

    [​IMG]

    Nun meine Fragen:
    - Was habe ich falsch gemacht, das der Cast nicht funktioniert?
    - Gibt es eine bessere Methode das ClassNotFound Problem zu umgehen. Aktuell muss ich bei jeder neuen vedion die jar im WebProjket aktuallisieren. Gibt es hierzu eine automatisierung?

    Vielen Dank im Vorruas
    JogiBär
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. Jogibär
    Jogibär Guest
    Hi,

    konnte das Problem lösen, indem ich ein EnterpriseApplicationProjekt angelegt habe und die beiden Projkete diesem zugeordnet habe.

    Gruß
    Jogibär
     
  4. FArt
    FArt Neues Mitglied
    Vermutlich hast du das Problem nur scheinbar gelöst, denn du kannst immer noch nicht erklären, wie hier eine ClassCastException entstehen kann.

    Ohne mit Glassfish bisher viel gearbeitet zu haben, vermute ich dass es sich hier wie bei anderen AS verhält: abhängig vom Assembly und von der Konfiguration (WAR, EAR) wird das Classloading im AS anders realisiert. Genaus kann man nur herausfinden, wenn man weiß wie der AS dort arbeitet und wie deine Applikation genau gepackt ist.
     
Die Seite wird geladen...

ClassCastException nach JDNI Lockup - Ähnliche Themen

Kann ClassCastException nicht nachvollziehen
Kann ClassCastException nicht nachvollziehen im Forum Java Basics - Anfänger-Themen
ClassCastException bei generischer Klasse
ClassCastException bei generischer Klasse im Forum Java Basics - Anfänger-Themen
Castor unmarshal von XML Dokument - ClassCastException aufgrund vom falschen ClassLoader?
Castor unmarshal von XML Dokument - ClassCastException aufgrund vom falschen ClassLoader? im Forum XML und Co.
Hilfe!!! java.lang.ClassCastException
Hilfe!!! java.lang.ClassCastException im Forum Java Basics - Anfänger-Themen
ClassCastException bei Entities-JAR im EAR
ClassCastException bei Entities-JAR im EAR im Forum Data Tier
Thema: ClassCastException nach JDNI Lockup