2016-06-01 24 views
0

Ich erhalte eine ClassCastException beim Aufrufen eines EJB in einem Pojo über JNDI. Ich benutze Oracle Weblogic Server 10.3.6 (EJB 3.0).ClassCastException während Aufruf EJB über JNDI

Meine Struktur:

  • app.ear
    • lib
      • Interfaces.jar
        • MyBeanInterface.java
    • ejb.jar
      • MyBeanImpl.java
    • webapp.war
      • Client.java
      • WEB-INF
        • web.xml

Meine lokale Schnittstelle:

package mypackage; 

@Local 
public Interface MyBeanInterface {} 

Meine EJB-Klasse:

package mypackage; 

@Stateless(name = "MyBean") 
public class MyBeanImpl implements MyBeanInterface {} 

My Client (kein EJB):

MyBeanInterface bean = (MyBeanInterface) new InitialContext().lookup("java:comp/env/ejb/MyBean"); 

Mein web.xml

<ejb-local-ref> 
    <ejb-ref-name>ejb/MyBean</ejb-ref-name> 
    <ejb-ref-type>Session</ejb-ref-type> 
    <local>mypackage.MyBeanInterface</local> 
</ejb-local-ref> 

Meine Ausnahme:

Die Lookup selbst funktioniert. Ich bekomme eine Referenz. Aber wenn ich mit (MyBeanInterface) werfen möchte ich die folgende Fehlermeldung erhalten:

Kann keine Instanz geworfen „Klasse mypackage.MyBeanInterface_whjkp6_MyBeanImpl (geladen von Instanz weblogic.utils.classloaders.GenericClassLoader (id = 28136))“ zu eine Instanz von „Schnittstelle mypackage.MyBeanInterface (geladen von Instanz weblogic.utils.classloaders.GenericClassLoader (id = 28144))

Was kann ich tun?

Antwort