2011-07-27 2 views
0

Im은 봄 3.0.5 버전의 석영 1.5.2를 사용합니다. 내가 jdbc 저장소 유형 쿼츠, 메신저 NotSerializableException 직면과 스케줄러 컨텍스트를하려고 할 때. 나는 그것을 끝내기 위해 나의 연구를했다. 그러나 couldnt는 그럭저럭 그것을 극복 할 수 있었다. 아이디어가 없다.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> 

내가 무엇을해야합니까? 미리 감사드립니다.

답변

0

EmailSenderJob 및 모든 구성원은 Serializable을 구현해야합니다.

+0

JobDataAsMap 항목으로 전달되므로 Serializable 인터페이스를 구현해야하는 EmailServiceImpl 클래스가 있다고 생각합니다. – Waqas

+0

두 가지를 모두 직렬화하려고 시도했지만 성공하지 못했습니다. 여전히 동일한 오류가 발생하고 있습니다. – MartK

+0

@MartK 수신하는 예외를 게시 할 수 있습니까? – Waqas