直奔主题:
<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包?
这个问题怎么解决,真心求教,若能解决,不甚感激。
quartzspring
<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包?
这个问题怎么解决,真心求教,若能解决,不甚感激。
quartzspring
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
真的,不实现序列化就换成这个报错了
*
*/
private static final long serialVersionUID = -9050495977797372653L; public void testMethod(String name){
System.out.println(new Date());
}
}
改为
public class SimpleService{
public void testMethod(String name){
System.out.println(new Date());
}
}
还报错?
<bean id="simpleService" class="com.richway.quartz.service.SimpleService">
</bean>