分享

解决Spring中使用quartz发生NotSerializableException methodInvoker的问题

 风_宇星 2015-05-24

Spring2.5 + quartz1.6.5 发生如下异常

 

Caused by: org.quartz.JobPersistenceException: Couldn't store job: Unable to serialize JobDataMap for insertion into database because the value of property 'methodInvoker' is not serializable: org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean [See nested exception: java.io.NotSerializableException: Unable to serialize JobDataMap for insertion into database because the value of property 'methodInvoker' is not serializable: org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean]
        at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1105)

 

这是Spring的Bug, 解决方法 http://jira./browse/SPR-3797
下载BeanInvokingJobDetailFactoryBean.java 和 MethodInvokingJobDetailFactoryBean.java
在Spring配置文件中使用如下方式

 

Xml代码  收藏代码
  1. <bean id="exampleBean" class="example.ExampleImpl">   
  2. </bean>  
  3.   
  4. <bean id="exampleTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
  5.     <!-- Execute exampleBean.fooBar() at 2am every day -->  
  6.     <property name="cronExpression" value="0 0 2 * * ?" />  
  7.     <property name="jobDetail">   
  8.         <bean class="frameworkx.springframework.scheduling.quartz.BeanInvokingJobDetailFactoryBean">   
  9.             <property name="concurrent" value="false"/>  
  10.             <property name="targetBean" value="exampleBean" />  
  11.             <property name="targetMethod" value="fooBar" />  
  12.             <property name="arguments">   
  13.                 <list>   
  14.                     <value>arg1Value</value>  
  15.                     <value>arg2Value</value>   
  16.                 <list>   
  17.             </property>   
  18.         </bean>   
  19.     </property>   
  20. </bean>   
  21.   
  22. <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   
  23.     <property name="triggers">   
  24.         <list>   
  25.             <ref bean="exampleTrigger" />   
  26.         </list>   
  27.     </property>   
  28. </bean>  
 

附件是BeanInvokingJobDetailFactoryBean.java 和 MethodInvokingJobDetailFactoryBean.java

 

参考 http://soulshard./blog/337886

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约