当前位置: 首页 > 知识库问答 >
问题:

在Spring批处理管理中使用@stepscope时出错

花飞扬
2023-03-14

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

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

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

因为我在一个reader类上添加了“@stepscope”,所以在部署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
<bean class="org.springframework.batch.core.scope.StepScope">
    <property name="autoProxy" value="false" />
</bean>

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

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

共有1个答案

朱建弼
2023-03-14

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

 类似资料:
  • 我有一个定制的作家,它很好用;但是,我想通过JobParameters来设置我的输出文件的名称,而不是在我的配置中使用固定的字符串。为了做到这一点,我添加了@stepscope注释和参数,就像我对ItemReader所做的那样。 ItemWriter声明 步骤声明 这段代码不起作用,我得到一个WriterNotOpenException是因为我使用FlatFileItemWriter作为委托。 当

  • 我已经将spring batch admin与现有的spring web应用程序集成。我可以使用batch admin屏幕触发/控制作业,并使用Tomcat8进行部署。一切正常,但Spring管理批处理日志在控制台中触发,导致catalina。填写GB。日志样本如下: 我的log4j配置如下: 但我不断地得到日志。你能建议如何禁用/增加日志级别吗?提前谢谢。

  • 我使用的是最新的Spring Batch Admin(1.3.0.Release),并且在我的WAR工件pom文件中包含了'admin-manager'和'admin-resources'。 我的问题是css和图像资源从来没有正确的链接,所以我的管理主页看起来像这样。关于如何配置上下文以正确地包括这些资源,有什么建议吗?

  • 我正在使用Spring批处理设置一个作业服务器。我的JdbcCursorItemReader需要配置sql,该sql在每个作业运行的基础上进行更改。因为sql发生了变化,所以我希望阅读器具有@stepscope,这样我就不需要担心sql的状态性了。 所以我设置了这样一个类: 我在整个服务器上使用基于Java的配置。ItemReader的一个实例的bean如下所示: 启动服务器并运行Spring批处

  • 我有一个独立的spring批处理作业。这在JUNIT中工作得非常好 和配置文件 主要阶级 当我注释掉contextconfiguration注释并通过启用@SpringApplicationConfiguration(注意:我已使用注释@EnableBatchProcessing启用spring批处理)启用spring-boot,并注释掉spring-boot为spring批处理(如JobRepo

  • 几个月前,我用Spring Batch制作了一个项目。 该项目工作正常,包括JobExecution决策器的实现 这使fini仅与Spring Batch配合使用。 现在我必须将其用于Spring Boot批处理。在决策步骤之前,所有流程都运行良好。其中,我返回了良好的FlowExecutionStatus,但我不知道为什么,作业以“失败”状态完成。 有人知道为什么不工作了? 谢谢