Hi All,
I am new to Glassfish and trying to integrate Spring, EJB and Hibernate in Glassh Fish 4.0
When i try to integrate, I get the below exception.
java.lang.ClassCastException: com.geoplace.entitymodels.ChangeLog cannot be cast to com.geoplace.entitymodels.ChangeLog
at com.geoplace.middleware.businessobject.ejbimpl.DemoEJB.sayHello(DemoEJB.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4695)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:630)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:582)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4667)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4655)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
at com.sun.proxy.$Proxy221.sayHello(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:239)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:150)
at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:226)
at com.geoplace.middleware.businessobject.ejbremote.__DemoEJBRemote_Remote_DynamicStub.sayHello(
My EJB :
@Stateless(name="ejb/DemoEJB" , mappedName="ejb/DemoEJBService")
public class DemoEJB implements DemoEJBRemote {
@PersistenceUnit(name="primary")
private EntityManagerFactory emf;
public String sayHello() {
EntityManager em = emf.createEntityManager();
System.out.println(emf.getMetamodel().getEntities());
Calendar myCal = Calendar.getInstance();
myCal.set(Calendar.YEAR, 2014);
myCal.set(Calendar.MONTH, Calendar.AUGUST);
myCal.set(Calendar.DAY_OF_MONTH, 07);
Query q = em
.createQuery(
"select ch from ChangeLog ch where ch.recordIdentifier = :rd and ch.authCode = :ad and ch.referenceNumber = :rf" , ChangeLog.class)
.setParameter("rd", new BigDecimal(23))
.setParameter("ad", new BigDecimal(505))
.setParameter("rf", new BigDecimal("200004167368"));
List
for (ChangeLog entity : results) {
System.out.println(entity);
}
em.close();
return "Helllooo";
}
}
Spring Bean
--------------
@Component
@Scope(value="session", proxyMode=ScopedProxyMode.TARGET_CLASS)
public class SessionSpringBean implements Serializable{
@EJB(mappedName = "ejb/DemoEJBService")
private DemoEJBRemote demoejb;
private static final long serialVersionUID = 184513L;
final Logger logger = LogManager
.getLogger(SessionSpringBean.class);
public SessionSpringBean(){
super();
logger.info("I am the constructor in session spring bean");
}
public void getFromDB(){
logger.info("Calling");
demoejb.sayHello();
logger.info("Called");
}
}