将@StepScope与Spring Batch Admin一起使用时出错

时间:2017-03-01 17:51:25

标签: spring spring-batch spring-batch-admin

我使用Spring Batch Admin从我的主项目的批处理模块启动批处理。

批处理模块在Spring Batch Admin项目的依赖项中编译为JAR addstrong文本,如下所示:

<dependency>
        <groupId>company.project</groupId>
        <artifactId>project-batch</artifactId>
        <version>1.10.0-SNAPSHOT</version>
</dependency>

因为我添加了&#34; @StepScope&#34;在我的一个读者类中,我在部署Spring Batch Admin时遇到以下错误

Could not generate CGLIB subclass of class [class com.sun.proxy.$Proxy71]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class class com.sun.proxy.$Proxy71

我在批处理模块上运行单元测试时遇到了同样的错误(没有Spring Batch Admin),但我在测试配置中使用以下bean声明解决了它:

<bean class="org.springframework.batch.core.scope.StepScope">
    <property name="autoProxy" value="false" />
</bean>

但我没有找到如何使用类似的声明来防止Spring Batch Admin项目中的错误。

我尝试将bean添加到模块端或SBA项目端的配置中,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

据我所知,这个错误不是由SBA引起的。这是spring通常尝试代理你的bean。请检查使用@StepScope注释的班级,并从班级定义和公共方法定义中删除final