java - Spring batch throws exception upgrading to 3.0.0.RELEASE from 2.1.8.RELEASE -


greetings , happy friday: below issue bothering me on verge of weekend... seems version related spring batch programs failing after pushed in changes branch spring version 3.0.0.release , respective schema changes. better readability on drive.

old working configuration

--- pom.xml ---

<spring.version>4.0.3.release</spring.version> <spring.integration.version>4.0.0.release</spring.integration.version> <spring-security.version>3.1.0.release</spring-security.version> <spring.batch.version>2.1.8.release</spring.batch.version> 

--- job.xml ---

<?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:tx="http://www.springframework.org/schema/tx"     xmlns:batch="http://www.springframework.org/schema/batch"     xsi:schemalocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.1.xsd         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">      <import resource="batch-jobs.xml"/>      <batch:job id="responsefilereaderjob">         <batch:step id="dailyrrjob">             <batch:tasklet>                 <batch:chunk reader="dailyrrreader" writer="dailyrrcrdbwriter" processor="itemprocessor" commit-interval="10"/>             </batch:tasklet>         </batch:step> </batch:job>  </beans> 

new configuration fails

--- pom.xml ---

<spring.version>4.0.3.release</spring.version> <spring.integration.version>4.0.0.release</spring.integration.version> <spring-security.version>3.1.0.release</spring-security.version> <spring.batch.version>3.0.0.release</spring.batch.version> 

--- job.xml ---

<?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:tx="http://www.springframework.org/schema/tx"     xmlns:batch="http://www.springframework.org/schema/batch"     xsi:schemalocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-3.0.xsd         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">      <import resource="batch-jobs.xml"/>     <batch:job id="responsefilereaderjob">         <batch:step id="dailyrrjob">             <batch:tasklet>                 <batch:chunk reader="dailyrrreader" writer="dailyrrcrdbwriter" processor="itemprocessor" commit-interval="10"/>             </batch:tasklet>         </batch:step> </batch:job>  </beans> 

--- batch-job.xml ---

<?xml version="1.0" encoding="utf-8" standalone="no"?> <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:aop="http://www.springframework.org/schema/aop"      xmlns:context="http://www.springframework.org/schema/context"      xmlns:jee="http://www.springframework.org/schema/jee"      xmlns:tx="http://www.springframework.org/schema/tx"      xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"      xsi:schemalocation="     http://www.springframework.org/schema/aop      http://www.springframework.org/schema/aop/spring-aop-3.1.xsd             http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-3.1.xsd              http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-3.1.xsd              http://www.springframework.org/schema/jee      http://www.springframework.org/schema/jee/spring-jee-3.1.xsd              http://www.springframework.org/schema/tx      http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">      <!-- configuration load  joblaunchertestutils -->     <bean class="org.springframework.batch.test.joblaunchertestutils"/>       <tx:annotation-driven  mode="aspectj" transaction-manager="transactionmanager" />      <bean id="jdbctemplate" class="org.springframework.jdbc.core.jdbctemplate">         <property name="datasource" ref="datasource" />     </bean>      <bean id="jobrepository" class="org.springframework.batch.core.repository.support.mapjobrepositoryfactorybean">         <property name="isolationlevelforcreate" value="isolation_default"/>         <property name="transactionmanager" ref="transactionmanager" />     </bean>      <bean id="joblauncher"         class="org.springframework.batch.core.launch.support.simplejoblauncher">         <property name="jobrepository" ref="jobrepository" />     </bean> </beans> 

test class:

package com.chofac.mint.batch; import org.apache.log4j.logger; import org.junit.ignore; import org.junit.test; import org.junit.runner.runwith; import org.springframework.batch.core.job; import org.springframework.batch.core.jobexecution; import org.springframework.batch.core.jobparameters; import org.springframework.batch.core.launch.joblauncher; import org.springframework.beans.factory.annotation.autowired; import org.springframework.context.applicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; import org.springframework.test.context.contextconfiguration; import org.springframework.test.context.contextconfigurationattributes; import org.springframework.test.context.junit4.springjunit4classrunner; import org.springframework.util.stopwatch;   @contextconfiguration(locations = {"classpath:meta-inf/spring/applicationcontext.xml","classpath:meta-inf/spring/mexresponsejob.xml"}) @runwith(springjunit4classrunner.class) public class mexresponsereaderjobtest {      private final static logger logger = logger.getlogger(mexresponsereaderjobtest.class);     @autowired     private joblauncher launcher;     @autowired     private job job;     private jobparameters jobparameters = new jobparameters();      //@ignore     @test     public void testdbtoflatfilejob() throws exception {          stopwatch sw = new stopwatch();         sw.start();         jobexecution execution =launcher.run(job, jobparameters);         logger.info("exit status : " + execution.getstatus());         sw.stop();         logger.info(">>> time elapsed:" + sw.prettyprint());     } } 

partial error log:

2014-06-27 17:39:04,093 [main] debug org.springframework.beans.factory.support.defaultlistablebeanfactory - retrieved dependent beans bean 'org.springframework.batch.item.database.beanpropertyitemsqlparametersourceprovider#773c550f': [dailyregistryrejectcardrefresherdbwriter]  2014-06-27 17:39:04,094 [main] debug org.springframework.beans.factory.support.disposablebeanadapter - invoking destroy() on bean name 'appconfig'  2014-06-27 17:39:04,094 [main] debug org.springframework.beans.factory.support.disposablebeanadapter - invoking destroy method 'close' on bean name 'rldatasource' 2014-06-27 17:39:04,094 [main] debug org.springframework.beans.factory.support.disposablebeanadapter - invoking destroy() on bean name 'entitymanagerfactory'  2014-06-27 17:39:04,094 [main] info org.springframework.orm.jpa.localcontainerentitymanagerfactorybean - closing jpa entitymanagerfactory persistence unit 'persistenceunit'  2014-06-27 17:39:04,094 [main] info org.hibernate.impl.sessionfactoryimpl - closing  2014-06-27 17:39:04,095 [main] debug org.springframework.beans.factory.support.disposablebeanadapter - invoking destroy method 'close' on bean name 'datasource' 2014-06-27 17:39:04,095 [main] debug org.springframework.beans.factory.support.disposablebeanadapter - invoking destroy() on bean name 'org.springframework.batch.core.configuration.annotation.stepscopeconfiguration' 2014-06-27 17:39:04,095 [main] error org.springframework.test.context.testcontextmanager - caught exception while allowing testexecutionlistener [org.springframework.test.context.support.dependencyinjectiontestexecutionlistener@778b3fee] prepare test instance [com.chofac.mint.batch.mexresponsereaderjobtest@7786df0f] java.lang.illegalstateexception: failed load applicationcontext     @ org.springframework.test.context.cacheawarecontextloaderdelegate.loadcontext(cacheawarecontextloaderdelegate.java:99)     @ org.springframework.test.context.defaulttestcontext.getapplicationcontext(defaulttestcontext.java:101)     @ org.springframework.test.context.support.dependencyinjectiontestexecutionlistener.injectdependencies(dependencyinjectiontestexecutionlistener.java:109)     @ org.springframework.test.context.support.dependencyinjectiontestexecutionlistener.preparetestinstance(dependencyinjectiontestexecutionlistener.java:75)     @ org.springframework.test.context.testcontextmanager.preparetestinstance(testcontextmanager.java:319)     @ org.springframework.test.context.junit4.springjunit4classrunner.createtest(springjunit4classrunner.java:212)          @ org.springframework.test.context.junit4.springjunit4classrunner$1.runreflectivecall(springjunit4classrunner.java:289)     @ org.junit.internal.runners.model.reflectivecallable.run(reflectivecallable.java:15)     @ org.springframework.test.context.junit4.springjunit4classrunner.methodblock(springjunit4classrunner.java:291)     @ org.springframework.test.context.junit4.springjunit4classrunner.runchild(springjunit4classrunner.java:232)     @ org.springframework.test.context.junit4.springjunit4classrunner.runchild(springjunit4classrunner.java:89)     @ org.junit.runners.parentrunner$3.run(parentrunner.java:231)       @ org.junit.runners.parentrunner$1.schedule(parentrunner.java:60)       @ org.junit.runners.parentrunner.runchildren(parentrunner.java:229)         @ org.junit.runners.parentrunner.access$000(parentrunner.java:50)       @ org.junit.runners.parentrunner$2.evaluate(parentrunner.java:222)          @ org.springframework.test.context.junit4.statements.runbeforetestclasscallbacks.evaluate(runbeforetestclasscallbacks.java:61)     @ org.springframework.test.context.junit4.statements.runaftertestclasscallbacks.evaluate(runaftertestclasscallbacks.java:71)     @ org.junit.runners.parentrunner.run(parentrunner.java:300)         @ org.springframework.test.context.junit4.springjunit4classrunner.run(springjunit4classrunner.java:175)     @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.run(junit4testreference.java:50)     @ org.eclipse.jdt.internal.junit.runner.testexecution.run(testexecution.java:38)     @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:467)     @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:683)     @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:390)     @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:197) caused by: org.springframework.beans.factory.beancreationexception: error creating bean name 'jobbuilders' defined in class path resource [org/springframework/batch/core/configuration/annotation/simplebatchconfiguration.class]: instantiation of bean failed; nested exception org.springframework.beans.factory.beandefinitionstoreexception: factory method [public org.springframework.batch.core.configuration.annotation.jobbuilderfactory org.springframework.batch.core.configuration.annotation.abstractbatchconfiguration.jobbuilders() throws java.lang.exception] threw exception; nested exception java.lang.classcastexception: org.springframework.batch.core.repository.support.mapjobrepositoryfactorybean$$enhancerbyspringcglib$$b02b9c89 cannot cast org.springframework.batch.core.repository.jobrepository         @ org.springframework.beans.factory.support.constructorresolver.instantiateusingfactorymethod(constructorresolver.java:597)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.instantiateusingfactorymethod(abstractautowirecapablebeanfactory.java:1094)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbeaninstance(abstractautowirecapablebeanfactory.java:989)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:504)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:475)     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:304)     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:228)     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:300)     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:195)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:703)     @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:760)     @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:482)     @ org.springframework.test.context.support.abstractgenericcontextloader.loadcontext(abstractgenericcontextloader.java:121)     @ org.springframework.test.context.support.abstractgenericcontextloader.loadcontext(abstractgenericcontextloader.java:60)     @ org.springframework.test.context.support.abstractdelegatingsmartcontextloader.delegateloading(abstractdelegatingsmartcontextloader.java:100)     @ org.springframework.test.context.support.abstractdelegatingsmartcontextloader.loadcontext(abstractdelegatingsmartcontextloader.java:250)     @ org.springframework.test.context.cacheawarecontextloaderdelegate.loadcontextinternal(cacheawarecontextloaderdelegate.java:64)     @ org.springframework.test.context.cacheawarecontextloaderdelegate.loadcontext(cacheawarecontextloaderdelegate.java:91)     ... 25 more caused by: org.springframework.beans.factory.beandefinitionstoreexception: factory method [public org.springframework.batch.core.configuration.annotation.jobbuilderfactory org.springframework.batch.core.configuration.annotation.abstractbatchconfiguration.jobbuilders() throws java.lang.exception] threw exception; nested exception java.lang.classcastexception: org.springframework.batch.core.repository.support.mapjobrepositoryfactorybean$$enhancerbyspringcglib$$b02b9c89 cannot cast org.springframework.batch.core.repository.jobrepository        @ org.springframework.beans.factory.support.simpleinstantiationstrategy.instantiate(simpleinstantiationstrategy.java:188)     @ org.springframework.beans.factory.support.constructorresolver.instantiateusingfactorymethod(constructorresolver.java:586)     ... 42 more caused by: java.lang.classcastexception: org.springframework.batch.core.repository.support.mapjobrepositoryfactorybean$$enhancerbyspringcglib$$b02b9c89 cannot cast org.springframework.batch.core.repository.jobrepository        @ org.springframework.batch.core.configuration.annotation.simplebatchconfiguration$$enhancerbyspringcglib$$54bada31.jobrepository(<generated>)     @ org.springframework.batch.core.configuration.annotation.abstractbatchconfiguration.jobbuilders(abstractbatchconfiguration.java:59)     @ org.springframework.batch.core.configuration.annotation.simplebatchconfiguration$$enhancerbyspringcglib$$54bada31.cglib$jobbuilders$7(<generated>)     @ org.springframework.batch.core.configuration.annotation.simplebatchconfiguration$$enhancerbyspringcglib$$54bada31$$fastclassbyspringcglib$$61b95431.invoke(<generated>)     @ org.springframework.cglib.proxy.methodproxy.invokesuper(methodproxy.java:228)     @ org.springframework.context.annotation.configurationclassenhancer$beanmethodinterceptor.intercept(configurationclassenhancer.java:312)     @ org.springframework.batch.core.configuration.annotation.simplebatchconfiguration$$enhancerbyspringcglib$$54bada31.jobbuilders(<generated>)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)       @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)     @ java.lang.reflect.method.invoke(method.java:597)     @ org.springframework.beans.factory.support.simpleinstantiationstrategy.instantiate(simpleinstantiationstrategy.java:166)     ... 43 more 2014-06-27 17:39:04,106 [main] debug org.springframework.test.context.support.dirtiescontexttestexecutionlistener - after test class: context [defaulttestcontext@1f25fefa testclass = mexresponsereaderjobtest, testinstance = [null], testmethod = [null], testexception = [null], mergedcontextconfiguration = [mergedcontextconfiguration@379e8f17 testclass = mexresponsereaderjobtest, locations = '{classpath:meta-inf/spring/applicationcontext.xml, classpath:meta-inf/spring/mexresponsejob.xml}', classes = '{}', contextinitializerclasses = '[]', activeprofiles = '{}', contextloader = 'org.springframework.test.context.support.delegatingsmartcontextloader', parent = [null]]], dirtiescontext [false]. 

tried solution mentioned here seems similar , invoking class below, same error.

public class mexrequestgeneratorjobtest {     public static void main(string[] args) {         configurableapplicationcontext context = new classpathxmlapplicationcontext("classpath:meta-inf/spring/applicationcontext.xml","classpath:meta-inf/spring/mexrequestjob.xml");         job job = (job) context.getbean("jobprocessor");         joblauncher launcher = (joblauncher) context.getbean("mexdb2filejob");         try{             jobexecution jobexecution = launcher.run(job, new jobparameters());         }catch(exception e){}     } } 

could please provide me clue way fix issue. in advance.

perhaps simplebatchconfiguration instantiating jobrepository or associated elements, try taking them out of context.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

django - CSRF verification failed. Request aborted. CSRF cookie not set -