We are using Quartz 2.1.5; we have the following properties set:
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.CloudscapeDelegate org.quartz.jobStore.useProperties = true org.quartz.jobStore.tablePrefix=QRTZ_ org.quartz.jobStore.isClustered=true org.quartz.jobStore.clusterCheckinInterval=20000
and the following beans configuration:
<bean name="abcRequestsJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="com.hsc.correspondence.job.AbcRequestsJob" /> <property name="group" value="sftpTransfers"/> </bean> <bean id="abcRequestsJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="abcRequestsJob" /> <property name="group" value="sftpTransfers"/> <property name="cronExpression" value="${quartz.abcRequests.cronExpression}" /> </bean>
When we run, we are getting an error saying that
nested exception is org.quartz.JobPersistenceException: Couldn't store trigger 'sftpTransfers.abcRequestsJobTrigger' for 'sftpTransfers.abcRequestsJob' job:JobDataMap values must be Strings when the 'useProperties' property is set. Key of offending value: jobDetail [See nested exception: java.io.IOException: JobDataMap values must be Strings when the 'useProperties' property is set. Key of offending value: jobDetail]
Is there another way to configure a CronTriggerFactoryBean
than using a reference to the JobDetailFactoryBean
reference, or a different trigger factory bean that only takes strings as properties? This all worked before we wanted to use clustering, but now that the job is going to be written to a blob they want only strings to be persisted. That's fine, how do I get it done?