Hi All,
I am new to Hibernate 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<ChangeLog> results = q.getResultList();
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"); } }
|