Announcement Announcement Module
Collapse
No announcement yet.
Unable to Register Batch Job Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unable to Register Batch Job

    Hi,

    I have a job under src/main/resources/META-INF/spring/batch/jobs. The job is from the SPIA book

    I package my project to a War and deploy it on a Web Server (JBoss 4.2). Then I thought, that it should appear automatically in the jobs list (ie http://localhost:8081/springbatchadmin/jobs ). But nothing happens, no errors or so. After I call the job from a Java Class, then it shows in the Job List.

    What can be wrong with my configuration and the Job doesn't appear in the Job List right after the deployment of the war ?

    Many thanks for any answer in advance.
    Andreas


    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:batch="http://www.springframework.org/schema/batch"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd">
    
    	<job id="importProducts" xmlns="http://www.springframework.org/schema/batch">
    		<step id="decompress" next="readWriteProducts">
    			<tasklet ref="decompressTasklet" />
    		</step>
    		<step id="readWriteProducts">
    			<tasklet>
    				<chunk reader="reader" writer="writer" commit-interval="3" skip-limit="5">
    					<skippable-exception-classes>
    						<include class="org.springframework.batch.item.file.FlatFileParseException" />
    					</skippable-exception-classes>
    				</chunk>
    			</tasklet>			
    		</step>
    	</job>
    	
    	<bean id="decompressTasklet" class="com.axatech.batch.example.DecompressTasklet" scope="step">
    		<property name="inputResource" value="#{jobParameters['inputResource']}" />
    		<property name="targetDirectory" value="#{jobParameters['targetDirectory']}" />
    		<property name="targetFile" value="#{jobParameters['targetFile']}" />
    	</bean>
    	
    	<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
    		<property name="resource" value="file:#{jobParameters['targetDirectory']+jobParameters['targetFile']}" />
    		<property name="linesToSkip" value="1" />
    		<property name="lineMapper">
    			<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
    				<property name="lineTokenizer">
    					<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
    						<property name="names" value="PRODUCT_ID,NAME,DESCRIPTION,PRICE" />
    					</bean>
    				</property>
    				<property name="fieldSetMapper">
    					<bean class="com.axatech.batch.example.ProductFieldSetMapper" />
    				</property>
    			</bean>
    		</property>
    	</bean>
    	
    	<bean id="writer" class="com.axatech.batch.example.ProductJdbcItemWriter">
    		<constructor-arg ref="dataSource" />
    	</bean>
    
    </beans>


    WEB-INF\batch-infrastructure.xml

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:batch="http://www.springframework.org/schema/batch"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd">
    
    	<batch:job-repository id="jobRepository" data-source="dataSource" transaction-manager="transactionManager"/>
    
    	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    
    	<bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
    		<property name="jobRepository" ref="jobRepository" />
    	</bean>
    		
    	<bean id="jobRegistryBeanPostProcessor" 
    	 	class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor"> 
    		<property name="jobRegistry" ref="jobRegistry" /> 
    	</bean> 
    	
    	<bean id="jobRegistry"
    		class="org.springframework.batch.core.configuration.support.MapJobRegistry" />
    	
    </beans>
    WEB-INF\applicationContext.xml
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    		http://www.springframework.org/schema/context
    		http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    		
    	<context:annotation-config />
    	
    	<import resource="batch-infrastructure.xml" />
    	<import resource="connect-database-context.xml" />
    	
    </beans>
Working...
X