Reference cannot be cast to SessionFactory (Quartz)
sefai Apr 28, 2008 1:36 PMI have two different applications that uses Quartz and I get two different exceptions...
First one:
2008-04-27 00:00:00,017 ERROR [org.quartz.core.JobRunShell] Job DEFAULT.2f34a517:119860671f7:-7ffd threw an unhandled Exception: java.lang.ClassCastException: javax.naming.Reference cannot be cast to org.hibernate.SessionFactory at org.jboss.seam.persistence.ManagedHibernateSession.getSessionFactoryFromJndiOrValueBinding(ManagedHibernateSession.java:234) at org.jboss.seam.persistence.ManagedHibernateSession.initSession(ManagedHibernateSession.java:81) at org.jboss.seam.persistence.ManagedHibernateSession.getSession(ManagedHibernateSession.java:112) at sun.reflect.GeneratedMethodAccessor824.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) at org.jboss.seam.Component.callComponentMethod(Component.java:2082) at org.jboss.seam.Component.unwrap(Component.java:2108) at org.jboss.seam.Component.getInstance(Component.java:1887) at org.jboss.seam.Component.getInstance(Component.java:1840) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166) at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:111) at org.jboss.seam.transaction.HibernateTransaction.initSession(HibernateTransaction.java:69) at org.jboss.seam.transaction.HibernateTransaction.begin(HibernateTransaction.java:80) at org.jboss.seam.util.Work.workInTransaction(Work.java:35) at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:50) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102) at org.anadolu.mifare.schedule.PersonnelTypeProcessor_$$_javassist_2.schedulePersonnelTypeSynchronization(PersonnelTypeProcessor_$$_javassist_2.java) at sun.reflect.GeneratedMethodAccessor821.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) at org.jboss.seam.async.AsynchronousInvocation.call(AsynchronousInvocation.java:52) at org.jboss.seam.async.Asynchronous.executeInContexts(Asynchronous.java:76) at org.jboss.seam.async.Asynchronous.execute(Asynchronous.java:45) at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:240) at org.quartz.core.JobRunShell.run(JobRunShell.java:203) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520) 2008-04-27 00:00:00,197 ERROR [org.quartz.core.ErrorLogger] Job (DEFAULT.2f34a517:119860671f7:-7ffd threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.ClassCastException: javax.naming.Reference cannot be cast to org.hibernate.SessionFactory] at org.quartz.core.JobRunShell.run(JobRunShell.java:214) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520) * Nested Exception (Underlying Cause) --------------- java.lang.ClassCastException: javax.naming.Reference cannot be cast to org.hibernate.SessionFactory at org.jboss.seam.persistence.ManagedHibernateSession.getSessionFactoryFromJndiOrValueBinding(ManagedHibernateSession.java:234) at org.jboss.seam.persistence.ManagedHibernateSession.initSession(ManagedHibernateSession.java:81) at org.jboss.seam.persistence.ManagedHibernateSession.getSession(ManagedHibernateSession.java:112) at sun.reflect.GeneratedMethodAccessor824.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) at org.jboss.seam.Component.callComponentMethod(Component.java:2082) at org.jboss.seam.Component.unwrap(Component.java:2108) at org.jboss.seam.Component.getInstance(Component.java:1887) at org.jboss.seam.Component.getInstance(Component.java:1840) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166) at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:111) at org.jboss.seam.transaction.HibernateTransaction.initSession(HibernateTransaction.java:69) at org.jboss.seam.transaction.HibernateTransaction.begin(HibernateTransaction.java:80) at org.jboss.seam.util.Work.workInTransaction(Work.java:35) at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:50) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102) at org.anadolu.mifare.schedule.PersonnelTypeProcessor_$$_javassist_2.schedulePersonnelTypeSynchronization(PersonnelTypeProcessor_$$_javassist_2.java) at sun.reflect.GeneratedMethodAccessor821.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.seam.util.Reflections.invoke(Reflections.java:21) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125) at org.jboss.seam.async.AsynchronousInvocation.call(AsynchronousInvocation.java:52) at org.jboss.seam.async.Asynchronous.executeInContexts(Asynchronous.java:76) at org.jboss.seam.async.Asynchronous.execute(Asynchronous.java:45) at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:240) at org.quartz.core.JobRunShell.run(JobRunShell.java:203) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
This is the ScheduleManager class
package org.anadolu.mifare.schedule; import java.util.Date; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Create; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.Startup; @Name("scheduleManager") @Startup(depends = ("cardDAO")) @Scope(ScopeType.APPLICATION) public class ScheduleManager { @In private PersonnelTypeProcessor personnelTypeProcessor; @Create public void init() { schedulePersonnelTypeSynchronization(); } private void schedulePersonnelTypeSynchronization() { this.personnelTypeProcessor.schedulePersonnelTypeSynchronization(new Date(), "00 00,30 * * * ?"); } }
This is the Job class
package org.anadolu.mifare.schedule; import java.util.Date; import java.util.List; import org.anadolu.mifare.dao.CardDAO; import org.anadolu.mifare.domain.RefectoryCardType; import org.anadolu.mifare.domain.ServiceType; import org.anadolu.personel.HataKodu; import org.anadolu.personel.PersonelTur; import org.anadolu.personel.PersonelTurBilgi; import org.anadolu.personel.WsYemekService; import org.anadolu.personel.WsYemekServiceSoap; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Logger; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Transactional; import org.jboss.seam.annotations.async.Asynchronous; import org.jboss.seam.annotations.async.Expiration; import org.jboss.seam.annotations.async.IntervalCron; import org.jboss.seam.async.QuartzTriggerHandle; import org.jboss.seam.log.Log; @Name("personnelTypeProcessor") @AutoCreate public class PersonnelTypeProcessor { @Logger private Log log; @In private CardDAO cardDAO; @Asynchronous @Transactional public QuartzTriggerHandle schedulePersonnelTypeSynchronization(@Expiration Date when, @IntervalCron String cron) { // call some web services & update database return null; } }
and component.xml
<?xml version="1.0" encoding="UTF-8"?> <components xmlns="http://jboss.com/products/seam/components" xmlns:core="http://jboss.com/products/seam/core" xmlns:persistence="http://jboss.com/products/seam/persistence" xmlns:security="http://jboss.com/products/seam/security" xmlns:transaction="http://jboss.com/products/seam/transaction" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:async="http://jboss.com/products/seam/async"> <core:init debug="false" /> <core:manager conversation-timeout="120000" concurrent-request-timeout="500" conversation-id-parameter="cid" /> <persistence:hibernate-session-factory name="hibernateSessionFactory" /> <persistence:managed-hibernate-session name="kartDatabase" auto-create="true" session-factory-jndi-name="java:/kartDatabase" /> <security:identity authenticate-method="#{authenticator.authenticate}" /> <transaction:hibernate-transaction session="#{kartDatabase}" /> <!-- Install the QuartzDispatcher --> <async:quartz-dispatcher /> </components>
The other application is designed with same logic and it gives org.hibernate.exception.JDBCConnectionException: Cannot open connection
Can someone help me,thanks in advance...