Java Quartz NotSerializableException异常

Java Quartz NotSerializableException异常,java,spring,quartz-scheduler,Java,Spring,Quartz Scheduler,Im使用石英1.5.2和spring 3.0.5版本。当我尝试获取jdbc存储类型为quartz的调度程序上下文时,我面临NotSerializableException。我已经做了研究来完成它,但我无法克服它。我没有主意了 这是调度程序配置 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc

Im使用石英1.5.2和spring 3.0.5版本。当我尝试获取jdbc存储类型为quartz的调度程序上下文时,我面临NotSerializableException。我已经做了研究来完成它,但我无法克服它。我没有主意了

这是调度程序配置

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="taskExecutor"
      class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize">
        <value>${middleware.taskExecutor.corePoolSize}</value>
    </property>
    <property name="maxPoolSize">
        <value>${middleware.taskExecutor.maxPoolSize}</value>
    </property>
    <property name="queueCapacity">
        <value>${middleware.taskExecutor.queueCapacity}</value>
    </property>
</bean>

<bean id="emailService" class="EmailServiceImpl">
</bean>    

<bean id="emailSenderTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail" ref="emailSenderJob"/>
    <property name="startDelay">
        <value>${middleware.portingTrigger.startDelay}</value>
    </property>
    <property name="repeatInterval">
        <value>${middleware.portingTrigger.repeatInterval}</value>
    </property>
</bean>

<bean id="emailSenderJob" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass" value="com.alcatel.lucent.tr.yoda.middleware.job.EmailSenderJob"/>
    <property name="jobDataAsMap">
        <map>
            <entry key="taskExecuter" value-ref="taskExecutor"/>
            <entry key="emailService">
                <ref bean="emailService"/>
            </entry>
        </map>
    </property>
</bean>

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="schedulerContextAsMap">
        <map>
            <entry key="emailService">
                <ref bean="emailService"/>
            </entry>
        </map>
    </property>
    <property name="autoStartup" value="true"/>
    <property name="triggers">
        <list>
            <ref bean="emailSenderTrigger"/>
        </list>
    </property>
    <property name="quartzProperties">
        <props>
            <prop key="org.quartz.scheduler.instanceName">DefaultQuartzScheduler</prop>
            <prop key="org.quartz.scheduler.rmi.export">false</prop>
            <prop key="org.quartz.scheduler.rmi.proxy">false</prop>
            <prop key="org.quartz.scheduler.xaTransacted">false</prop>
            <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
            <prop key="org.quartz.threadPool.threadCount">5</prop>
            <prop key="org.quartz.threadPool.threadPriority">4</prop>
            <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreCMT</prop>
            <!--<prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>-->
            <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
            <prop key="org.quartz.jobStore.dataSource">QUARTZ</prop>
            <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
            <prop key="org.quartz.jobStore.nonManagedTXDataSource">QUARTZ_NO_TX</prop>
            <prop key="org.quartz.dataSource.QUARTZ.jndiURL">java:QuartzDS</prop>
            <prop key="org.quartz.dataSource.QUARTZ_NO_TX.jndiURL">java:QuartzNoTxDS</prop>
        </props>
    </property>
</bean>

${middleware.taskExecutor.corePoolSize}
${middleware.taskExecutor.maxPoolSize}
${中间件.taskExecutor.queueCapacity}
${middleware.portingTrigger.startDelay}
${middleware.portingTrigger.repeatInterval}
默认调度程序
假的
假的
假的
org.quartz.siml.SimpleThreadPool
5.
4.
org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.impl.jdbcjobstore.StdJDBCDelegate
石英
QRTZ_
石英管
java:QuartzDS
java:QuartzNoTxDS


我该怎么办?提前感谢。

EmailSenderJob及其所有成员需要实现可序列化。

使用内部类。不需要序列化。

我想它的EmailServiceImpl类应该实现可序列化接口,因为它是作为jobDataAsMap条目传递的。我尝试将它们都序列化,但没有成功。我仍然收到相同的错误。@MartK您能发布您收到的异常吗?这似乎是正确的答案,因为您可以在内部类中序列化作业。谢谢你的回答。