0

CronTriggerFactoryBeanusing をセットアップしようとしていますが、初期化しようとしているJobDetailSpringという名前のプロパティがあります。

  <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="name" value="NTrigger"></property>
        <property name="group" value="Group Trigger"></property>
        <property name="jobDetail" value="Group Trigger"></property>
        <property name="cronExpression" value="${quartz.slaPollerCronExpression.timeInterval}"></property>
    </bean>

しかし、次のようなエラーが発生します。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'cronTriggerForSLAPoller' defined in ServletContext resource [/WEB-INF/config/quartz
-config.xml]: Initialization of bean failed; nested exception is
org.springframework.beans.ConversionNotSupportedException: Failed to convert property value
of type 'java.lang.String' to required type 'org.quartz.JobDetail' for property
'jobDetail'; nested exception is java.lang.IllegalStateException:
Cannot convert value of type [java.lang.String] to required type [org.quartz.JobDetail
for property 'jobDetail': no matching editors or conversion strategy found.

Stringデフォルトのタイプでいいと思います。

をご覧ください[propertyeditors][1]。を使用する必要があると思いますClassEditor。私は正しいと思いますか?

このエラーを取り除くにはどうすればよいですか? このためのカスタム エディターを作成するにはどうすればよいですか?

4

2 に答える 2

1

文字列の代わりに参照を渡す必要があるようです:

Failed to convert property value of type 'java.lang.String' to required type 'org.quartz.JobDetail' for property 'jobDetail'

CronTriggerFactoryBean

/**
 * Set the JobDetail that this trigger should be associated with.
 */
public void setJobDetail(JobDetail jobDetail) {
    this.jobDetail = jobDetail;
}

Chapter 23. Scheduling and Thread Poolingを参照してください。

<bean id="exampleJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="exampleBusinessObject" />
    <property name="targetMethod" value="doIt" />
    <property name="concurrent" value="false" />
</bean>


<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="exampleJob" />
    <!-- Runs every morning at 6 AM -->
    <property name="cronExpression" value="0 0 6 * * ?" />
</bean>
于 2012-07-26T13:33:26.103 に答える
0

変換パターンを作成する必要があります。

  1. <property name="jobDetail" value="Group Trigger"></property>に 変更 <property name="jobDetail" ref="myconversion" />
  2. 変換パターンを追加:

    <bean id="myconversion" class="org.springframework.scheduling.quartz.JobDetailBean"> 
    <property name="jobClass" value="com.nuance.ndm.ou.jobs.MserverCalllogTransformerJob" /> 
    <property name="jobDataAsMap"> 
      <map> 
        <entry key="groupTrigger" value="Group Trigger"" />            
      </map> 
    </property> 
    

于 2012-07-26T13:36:53.593 に答える