spring读书笔记----Quartz Trigger JobStore出错解决

将Quartz的JOBDetail,Trigger保持到数据库的时候发现,系统报错 The job (DEFAULT.jobDetail) referenced by the trigger does not exist
经过测试发现,在不使用hibernate的时候只有spring的测试环境情况下一切正常。而放到工作环境的时候就发生错误。 因此怀疑是datasource的问题。查spring Quartz论坛上发现果然是这个问题。将quartz的datasource分开独立就全部解决了。其实也可以不独立将quartz的transaction也交给spring一同处理也可以的。 jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/quartz?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
jdbc.username=root
jdbc.password=huawei
quartz.jdbc.driver=com.mysql.jdbc.Driver
quartz.jdbc.url=jdbc:mysql://127.0.0.1:3306/quartz?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
quartz.jdbc.username=root
quartz.jdbc.password=huawei

  

applicationContext-datasource.xml

<!-- 事务管理器配置, Hibernate单数据源事务 -->
<bean id="defaultTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 另一个事务管理器, Jdbc单数据源事务 -->
<bean id="quartzTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="quartzDataSource" />
</bean>

  applicationContext-quartz.xml

<bean name="quartzScheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource" ref="quartzDataSource" />
<property name="applicationContextSchedulerContextKey" value="applicationContext" />
<property name="configLocation" value="classpath:schedule/quartz.properties" />
<property name="autoStartup">
<value>true</value>
</property>
</bean>

  

原文地址:https://www.cnblogs.com/a757956132/p/4825262.html