最近在做quartz的动态时间设置时碰见了一个类方法无法序列化的问题,但是该方法我已经实现了java.io.Serializable的接口了,所以很迷茫,经过询问同事了解到如果想序列化某一个类,必须保证这个类中的所有对象都是可序列化的,因此找到了原因所在,我在类中调用了自动注入的对象,这个对象并没有实现序列化的java.io.Serializable接口,所以我重新将该调用的对象一路序列化到底。
总结问题点如下:无法实现序列化的时候,检查是否该序列化的类中有没序列化的对象。
package com.jd.market.service.worker;
import com.jd.market.service.impl.SendMail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.Serializable;
/**
*调度使用逻辑控制类,在此类中进行不同组别的调度操作
*/
@Service("simpleService")
public class SimpleService implements Serializable{
private static final long serialVersionUID =122323233244334343L;
private static final Logger logger =LoggerFactory.getLogger(SimpleService.class);
@Resource
privateSendMail sendMail;
/**
*执行任务执行方法
* @paramtriggerName
* @paramgroup
*/
public void executeJob(String triggerName, Stringgroup){
sendMail.sendExecuteMail();
System.out.println("@@执行任务执行结束");
}
/**
*调查任务执行方法
* @paramtriggerName
* @paramgroup
*/
public void surveyJob( String triggerName,Stringgroup){
sendMail.sendSurveyMail();
System.out.println("@@调查任务执行结束");
}
}