Arthur Saint-Genis
Arthur Saint-Genis

Reputation: 187

Error when using @StepScope with Spring Batch Admin

I'm using Spring Batch Admin to launch batches from a batch module of my main project.

The batch module compile as a JAR addedstrong text in the dependency of the Spring Batch Admin project as follow:

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

Since I added "@StepScope" on one of my reader classes, I get the following error when deploying 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

I had the same error when running my unit test on the batch module (without Spring Batch Admin) but I resolved it using the following bean declaration in my test configuration:

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

But I don't find how to use similar declaration to prevent the error in the Spring Batch Admin project.

I tried to add the bean into a configuration on the module side or on the SBA project side but nothing seems to work.

Upvotes: 0

Views: 480

Answers (1)

Igor Konoplyanko
Igor Konoplyanko

Reputation: 9374

As far as I can see this error not caused by SBA. This is usual attempt of spring to proxify your bean. Please check your class annotated with @StepScope and remove final from class definition and public method definitions.

Upvotes: 1

Related Questions