2012-11-19 16 views
1

当试图序列所安排的事件,我得到无法序列石英,java.io.NotSerializableException:org.quartz.impl.StdScheduler

java.io.NotSerializableException: org.quartz.impl.StdScheduler 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180) 
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) 
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) 
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) 
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) 
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) 
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) 
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) 
    at java.util.ArrayList.writeObject(ArrayList.java:710) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) 
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) 
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) 

工作计划如下

JobDetail job = new JobDetail(); 

    job.setName(jobName); 
    job.setGroup("my group"); 
    job.setJobClass(Event.class); 

    SimpleTrigger trigger = new SimpleTrigger(); 
    trigger.setStartTime(new Date(momentInTime.inMillis())); 
    trigger.setName("trigger" + index); 

    if (shouldRunOnce()) { 
     trigger.setRepeatCount(0); 
    } else { 
     trigger.setRepeatInterval(repeatFrequency.inMillis()); 
     trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY); 
    } 

    scheduleManager.getScheduler().scheduleJob(job, trigger); 

请问如何避免这种情况?

+0

你可以发布更多的堆栈行吗? –

+0

@ Zaske完成。感谢您看这 – JAM

+0

你能发布Event的源代码吗? –

回答

0

我怀疑你的Event类没有实现Serializable接口)。
我看不出为什么序列化调度器本身,所以我怀疑这是原因
而且它有点合理,因为Quartz调度器必须以某种方式存储作业。

+0

事件是可序列化的。看来'org.quartz.impl.StdScheduler'不是 – JAM