1

我试图将我的内存中 jobRepository 共享给 jobExplorer。但它会引发错误,因为,

嵌套异常是

org.springframework.beans.ConversionNotSupportedException:
Failed to convert property value of type '$Proxy1 implementing
org.springframework.batch.core.repository.JobRepository,org.
springframework.aop.SpringProxy,org.springframework.aop.framework.Advised'
to required type

即使我在传递给jobExplorer进行共享时尝试在jobRepository之前放置'&'符号。但尝试以徒劳结束。

我正在使用 Spring Batch 2.2.1

jobExplorer 的依赖是否只是数据库而不是内存?

定义是,

<bean id="jobRepository"
        class="com.test.repository.BatchRepositoryFactoryBean">
        <property name="cache" ref="cache" />
        <property name="transactionManager" ref="transactionManager" />
</bean>

<bean id="jobOperator" class="test.batch.LauncherTest.TestBatchOperator">
        <property name="jobExplorer" ref="jobExplorer" />
        <property name="jobRepository" ref="jobRepository" />
        <property name="jobRegistry" ref="jobRegistry" />
        <property name="jobLauncher" ref="jobLauncher" />
</bean>

<bean id="jobExplorer" class="test.batch.LauncherTest.TestBatchExplorerFactoryBean">
        <property name="repositoryFactory" ref="&jobRepository" />
</bean>  


    <bean id="transactionManager"
        class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />

    <bean id="jobLauncher" class="com.scb.smartbatch.core.BatchLauncher">
        <property name="jobRepository" ref="jobRepository" />
    </bean>

    <!-- To store Batch details -->
    <bean id="jobRegistry" class="com.scb.smartbatch.repository.SmartBatchRegistry" />

    <bean id="jobRegistryBeanPostProcessor"
        class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
        <property name="jobRegistry" ref="jobRegistry" />
    </bean>

    <!--Runtime cache of batch executions -->
    <bean id="cache" class="com.scb.cache.TCRuntimeCache" />
4

2 回答 2

1

感谢您的宝贵意见。

但是我'&amp;'在作业存储库引用之前使用了它,这使我可以将它用作我的作业资源管理器作为共享资源。

问题解决了。

荣誉。

于 2013-10-16T09:50:16.710 回答
0

通常你必须连接接口而不是实现。
否则,您可能必须添加<aop:config proxy-target-class="true">以创建基于 CGLIB 的代理,而不是标准的基于 Java 的代理。
阅读有关此的Spring 官方文档

于 2013-10-15T11:49:36.173 回答