DuplicateJobException with AutomaticJobRegistrar using classpath*: resource URL
Not sure if anyone else is having this problem, but I've had a lot of trouble with DuplicateJobExceptions when using an AutomaticJobRegistrar that loads jobs from child ClasspathXmlApplicationContexts (following the Spring Batch User Guide).
Code:
<bean
class="org.springframework.batch.core.configuration.support.AutomaticJobRegistrar">
<property name="applicationContextFactories">
<bean
class="org.springframework.batch.core.configuration.support.ClasspathXmlApplicationContextsFactoryBean">
<property name="resources" value="classpath:/config/jobs/*.xml" />
</bean>
</property>
<property name="jobLoader">
<bean
class="org.springframework.batch.core.configuration.support.DefaultJobLoader">
<property name="jobRegistry" ref="jobRegistry" />
</bean>
</property>
</bean>
I'm using Maven-Eclipse integration, and the classpath*: URL appears to somehow pick up the job definitions from both my src/main and src/test resources. I tried a hundred different bean definition tweaks and stepped through the framework code, only to find that changing to classpath: fixed this immediately. Maybe this is a novice error, but it might be worth updating the user guide with a brief explanation, or perhaps even simplify the example from classpath*: to classpath:, if anyone else is having the same trouble.