日期:2014-05-17  浏览次数:20695 次

求助:quartz调用service报错
直奔主题:
<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
        <!--shouldRecover属性为true,则当Quartz服务被中止后,再次启动任务时会尝试恢复执行之前未完成的所有任务-->
        <property name="jobClass">
         <value>com.richway.quartz.test.HelloWorld</value>
        </property>
  <property name="jobDataAsMap">
  <map>
  <entry key="simpleService">
  <ref bean="simpleService"/>
  </entry>
  </map>
  </property>
        
    </bean>   

执行调度任务的那个类调用了一个service,就是那个simpleService,但是后台启动的时候就报错了:
Caused by: java.io.NotSerializableException: Unable to serialize JobDataMap for insertion into database because the value of property 'simpleService' is not serializable: org.springframework.aop.aspectj.AspectJPointcutAdvisor
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.serializeJobData(StdJDBCDelegate.java:3355)
at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.updateJobDetail(StdJDBCDelegate.java:560)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1104)
... 39 more
说的貌似是spring包里面的类没有序列化,为什么要让spring里面的类实现序列化呢?莫不是要改jar包?
这个问题怎么解决,真心求教,若能解决,不甚感激。
quartz spring

------解决方案--------------------
类实现了序列号,去掉就行了。
------解决方案--------------------
这个类:JobDataMap 是不是没有实现接口java.io.Seriable这个接口吧。