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
- Interfaces.jar
- ejb.jar
- MyBeanImpl.java
- webapp.war
- Client.java
- WEB-INF
- web.xml
- lib
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?