Hi

maybe try to add: -Dopenejb.classloader.forced-load=org.quartz
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau



2013/11/5 rdeleon <[email protected]>:
> Hi,
>
> I've been searching around for a while now, and have not seen anything along
> these lines yet. I hope I am not duplicating post(s).
>
> I'm having a problem and am struggling quite a bit with it.
>
> I have an EE project, wrapped up in an EAR. Within the EAR I have:
> * EJB
> * Several WARs
>
> In the EJB, I have a bean which extends QuartzJobBean. In my beans.xml I
> have the following:
>
> *beans.xml for WAR:*
> /    <bean name="statusScanJob"
> class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
>         <property name="jobClass" value="com.blah.something.StatusScan"/>
>         <property name="jobDataAsMap">
>             <map>
>                 <entry key="applicationContextKey"
> value-ref="appContextKey"/>
>             </map>
>         </property>
>     </bean>
>
>     <bean name="springJobFactory"
> class="org.springframework.scheduling.quartz.SpringBeanJobFactory"/>
>
>     <bean id="cronTrigger"
> class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
>         <property name="jobDetail" ref="statusScanJob"/>
>         <property name="cronExpression" value="0 0/30 * * * ?"/>
>     </bean>/
>
> Everytime I hit this WAR during deployment I experience the following error
> within the catalina log file:
> *Error--*
> /SEVERE: Context initialization failed
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0'
> defined in ServletContext resource [/WEB-INF/beans.xml]: Invocation of init
> method failed; nested exception is org.quartz.SchedulerException:
> Registration of jobs and triggers failed: null [See nested exception:
> java.lang.reflect.UndeclaredThrowableException]
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:587)
>         at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:925)
>         at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:472)
>         at
> org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
>         at
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
>         at
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
>         at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
>         at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
>         at 
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>         at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
>         at
> org.apache.tomee.catalina.TomcatWebAppBuilder.deployWar(TomcatWebAppBuilder.java:567)
>         at
> org.apache.tomee.catalina.TomcatWebAppBuilder.deployWebApps(TomcatWebAppBuilder.java:536)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:780)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:546)
>         at
> org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:542)
>         at
> org.apache.tomee.catalina.TomcatWebAppBuilder.checkHost(TomcatWebAppBuilder.java:1827)
>         at
> org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
>         at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
>         at
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>         at
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1374)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
>         at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: org.quartz.SchedulerException: Registration of jobs and triggers
> failed: null [See nested exception:
> java.lang.reflect.UndeclaredThrowableException]
>         at
> org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:322)
>         at
> org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:511)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
>         ... 32 more
> Caused by: java.lang.reflect.UndeclaredThrowableException
>         at
> org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:291)
>         at
> org.springframework.util.ReflectionUtils.handleInvocationTargetException(ReflectionUtils.java:270)
>         at
> org.springframework.util.ReflectionUtils.handleReflectionException(ReflectionUtils.java:254)
>         at
> org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:194)
>         at
> org.springframework.scheduling.quartz.SchedulerAccessor.triggerExists(SchedulerAccessor.java:432)
>         at
> org.springframework.scheduling.quartz.SchedulerAccessor.addTriggerToScheduler(SchedulerAccessor.java:359)
>         at
> org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:303)
>         ... 35 more
> Caused by: org.quartz.JobPersistenceException: Couldn't retrieve trigger:
> com.blah.something.StatusScan [See nested exception:
> java.lang.ClassNotFoundException: com.blah.something.StatusScan]
>         at
> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1524)
>         at
> org.quartz.impl.jdbcjobstore.JobStoreSupport$12.execute(JobStoreSupport.java:1512)
>         at
> org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:245)
>         at
> org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3716)
>         at
> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1509)
>         at 
> org.quartz.core.QuartzScheduler.getTrigger(QuartzScheduler.java:1477)
>         at org.quartz.impl.StdScheduler.getTrigger(StdScheduler.java:499)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:191)
>         ... 38 more
> Caused by: java.lang.ClassNotFoundException: com.blah.something.StatusScan
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:249)
>         at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:601)
>         at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1572)
>         at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493)
>         at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1459)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1309)
>         at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1950)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1874)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1756)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1326)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>         at java.util.HashMap.readObject(HashMap.java:1030)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at 
> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1852)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1756)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1326)
>         at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1950)
>         at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1874)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1756)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1326)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
>         at
> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3156)
>         at
> org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:1764)
>         at
> org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1520)
>         ... 49 more/
>
> What confuses me is that the class "StatusScan" is packaged within my EJB,
> which should be loaded via the classloader but something is amiss. I've been
> researching this for quite some time and am quite stuck. My WAR spring bean
> config has no visibility to the EJB class...it seems?
>
> I notice that before this exception the QuartzScheduler is generated, but
> seemingly not started?
>
> /INFO: Scheduler meta-data: Quartz Scheduler (v2.1.6) 'DC_Quartz_Scheduler'
> with instanceId 'DEV1383689759806'
>   Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
>   NOT STARTED.
>   Currently in standby mode.
>   Number of jobs executed: 0
>   Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 5 threads.
>   Using job-store
> 'org.springframework.scheduling.quartz.LocalDataSourceJobStore' - which
> supports persistence. and is clustered./
>
> My resource is declared in tomee.xml as so:
>
> /       <Resource id="jdbc/QuartzTimers" type="DataSource">
>                 accessToUnderlyingConnectionAllowed = false
>                 defaultAutoCommit = true
>                 ignoreDefaultValues = false
>                 initialSize = 1
>                 jdbcDriver = com.mysql.jdbc.jdbc2.optional.MysqlDataSource
>                 jdbcUrl = jdbc:mysql://localhost:3306/QuartzTimers
>                 jtaManaged = true
>                 maxActive = 20
>                 maxIdle = 20
>                 maxOpenPreparedStatements = 0
>                 maxWaitTime = -1 millisecond
>                 minEvictableIdleTime = 30 minutes
>                 minIdle = 0
>                 numTestsPerEvictionRun = 3
>                 password = ...
>                 passwordCipher = PlainText
>                 poolPreparedStatements = false
>                 testOnBorrow = true
>                 testOnReturn = false
>                 testWhileIdle = false
>                 timeBetweenEvictionRuns = -1 millisecond
>                 userName = ...
>         </Resource>/
>
> Am I missing anything? Is there anything else that I can provide to get some
> sort of assistance/direction with this?
>
> I'm trying to port our EAR from an older application (glassfish2) to
> something else as a part of a POC.
>
> Any response is greatly appreciated. Thanks for your time!
>
> -Randy
>
>
>
> --
> View this message in context: 
> http://openejb.979440.n4.nabble.com/TomEEPlus-1-5-2-Spring-3-1-3-RELEASE-Quartz-2-1-6-tp4665988.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to