I'm using spring and quartz to schedule jobs to trigger at different time intervals. I've created a test case in which I want the job to run every minute and i want the job details and info stored in my oracle database. When ran i get the following errors:
Exception in thread "main" org.springframework.beans.factory.BeanCreationExce ption: Error creating bean with name 'org.springframework.scheduling.quartz.SchedulerFa ctoryBean' defined in file [C:\AtlasView\AtlasPro\projects\scheduler\web\WEB-INF\applicationContext.xml]: Initialization of bean failed; nested exception is org.quartz.SchedulerConfigException: Failure occured during job recovery.
org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't clean volatile data: ORA-01722: invalid number
[See nested exception: java.sql.SQLException: ORA-01722: invalid number
My tables are already created in the db. Any assistance would be greatly appreciated. Thanks!
applicationContext.xml
NewJob.javaCode:<beans> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" > <property name="waitForJobsToCompleteOnShutdown" value="true"/> <property name="applicationContextSchedulerContextKey" value="applicationContext"/> <property name="quartzProperties"> <props> <!-- Main Scheduler Properties --> <prop key="org.quartz.scheduler.instanceName"> DefaultQuartzScheduler</prop> <prop key="org.quartz.scheduler.instanceId"> AUTO</prop> <prop key="org.quartz.scheduler.rmi.export"> false</prop> <prop key="org.quartz.scheduler.rmi.proxy"> false</prop> <prop key="org.quartz.scheduler.wrapJobExecutionInUserTransaction"> false</prop> <!-- ThreadPool --> <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop> <prop key="org.quartz.threadPool.threadCount">10</prop> <prop key="org.quartz.threadPool.threadPriority">5</prop> <prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop> <!-- Job store --> <prop key="org.quartz.jobStore.misfireThreshold">60000</prop> <!-- <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>--> <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreCMT</prop> <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</prop> <prop key="org.quartz.jobStore.dataSource">myDS</prop> <prop key="org.quartz.jobStore.nonManagedTXDataSource">myDS</prop> <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop> <prop key="org.quartz.jobStore.useProperties">false</prop> <!-- Configure Datasources --> <prop key="org.quartz.dataSource.myDS.driver">oracle.jdbc.driver.OracleDriver</prop> <prop key="org.quartz.dataSource.myDS.URL">jdbc:oracle:thin:</prop> <prop key="org.quartz.dataSource.myDS.user">uno</prop> <prop key="org.quartz.dataSource.myDS.password">uno</prop> <!-- Quartz Job Plugin Information --> <prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop> <prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop> </props> </property> </bean> <bean id="scheduler" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.bah.scheduler.utilities.NewJob"/> </bean>
NewScheduler.javaCode:public class NewJob implements Job { public void execute(JobExecutionContext context)throws JobExecutionException{ System.out.println("Hello World " +new java.util.Date()); }}
Code:public class NewScheduler { public static void main(String[] args) throws Exception { try{ System.out.println("Starting Spring Timer Version"); ApplicationContext context = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml"); Scheduler scheduler = (Scheduler)context.getBean("scheduler"); System.out.println("Starting Scheduler"); scheduler.start();} catch(SchedulerException se){ se.printStackTrace(); }}}


Reply With Quote
