Caros Amigos.
Ao iniciar o meu applicationContext está dando o erro abaixo onde ele não está conseguindo localizar o método genericBeanDefinition, já pesquisei na internet e muitos resolveram o seu problema passado de uma versão inferior do spring para a versão 2.5.3 mas este não é o meu caso pois eu já estou utilizando a ultima versão do spring 2.5.6.SEC01.
Verifiquei no meu jar do spring onde consegui localizar com sucesso que o método genericBeanDefinition(String) que ele está dando falta durante a compilação.
Alguém já enfrentou este problema? Vocês tem alguma dica de como contornar este problema?
applicationContext:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<import resource="hibernate-context.xml" />
<import resource="applicationContext-DAO.xml" />
<import resource="simple-job-launcher-context.xml"/>
<import resource="requesterElectronicInvoice.xml" />
</beans>
Bean onde está ocorrendo o erro:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<job id="requesterElectronicInvoice">
<step id="readerInvoice">
<tasklet>
<chunk reader="itemReader"/>
</tasklet>
</step>
</job>
<beans:bean id="ReaderInvoice" class="br.com.moip.jobs.rnf.ReaderInvoice">
<beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>
<beans:bean id="itemReader"
class="org.springframework.batch.item.database.HibernateCursorItemReader">
<beans:property name="sessionFactory" ref="sessionFactory" />
<beans:property name="queryString" value="from PaymentUsed" />
</beans:bean>
</beans:beans>
Classe que carrega o applicationContext
public class ApplicationContextFactoryJob implements InitializingBean{
static Logger logger = Logger.getLogger(ApplicationContextFactoryJob.class);
PaymentUsed paymentUsed;
protected static ApplicationContextFactoryJob instance = new ApplicationContextFactoryJob();
private BeanFactory factory;
ConsoleAppender consoleAppender = new ConsoleAppender(new PatternLayout());
private ApplicationContextFactoryJob(){
Resource resource = new ClassPathResource("applicationContext.xml");
factory = new XmlBeanFactory(resource);
}
public Object getBean(String id){
return factory.getBean(id);
}
public static void main(String args[]) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException{
try{
instance.getBean("PaymentUsed");
logger.info("transactionManager carregado com sucesso");
}catch(Exception e){
throw new BeanInitializationException("transactionManager Bean can not be created", e);
}
TransactionManager transactionManager = (TransactionManager)instance.getBean("transactionManager");
JobLauncher launcher = (JobLauncher)instance.getBean("jobLauncher");
Job job = (Job)instance.getBean("ReaderInvoice");
JobParameters jobParameters = null;
JobExecution jobExecution = launcher.run(job, jobParameters);
}
public void afterPropertiesSet() throws Exception {
Assert.notNull(paymentUsed);
}
}
Erro:
xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:303) - Loading XML bean definitions from class path resource [applicationContext.xml]
2009-07-03 10:57:02,067 INFO [main] xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:303) - Loading XML bean definitions from class path resource [hibernate-context.xml]
2009-07-03 10:57:02,131 INFO [main] xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:303) - Loading XML bean definitions from class path resource [applicationContext-DAO.xml]
2009-07-03 10:57:02,152 INFO [main] xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:303) - Loading XML bean definitions from class path resource [simple-job-launcher-context.xml]
2009-07-03 10:57:02,179 INFO [main] xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:303) - Loading XML bean definitions from class path resource [hibernate-context.xml]
2009-07-03 10:57:02,222 INFO [main] support.DefaultListableBeanFactory (DefaultListableBeanFactory.java:328) - Overriding bean definition for bean 'dataSource': replacing [Root bean: class [org.springframework.jdbc.datasource.DriverManagerDataSource]; scope=singleton; abstract=false; lazyInit=false; autowireCandidate=false; autowireMode=0; dependencyCheck=0; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [hibernate-context.xml]] with [Root bean: class [org.springframework.jdbc.datasource.DriverManagerDataSource]; scope=singleton; abstract=false; lazyInit=false; autowireCandidate=false; autowireMode=0; dependencyCheck=0; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [hibernate-context.xml]]
2009-07-03 10:57:02,227 INFO [main] support.DefaultListableBeanFactory (DefaultListableBeanFactory.java:328) - Overriding bean definition for bean 'sessionFactory': replacing [Root bean: class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]; scope=singleton; abstract=false; lazyInit=false; autowireCandidate=false; autowireMode=0; dependencyCheck=0; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [hibernate-context.xml]] with [Root bean: class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]; scope=singleton; abstract=false; lazyInit=false; autowireCandidate=false; autowireMode=0; dependencyCheck=0; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [hibernate-context.xml]]
2009-07-03 10:57:02,229 INFO [main] support.DefaultListableBeanFactory (DefaultListableBeanFactory.java:328) - Overriding bean definition for bean 'transactionManager': replacing [Root bean: class [org.springframework.orm.hibernate3.HibernateTransactionManager]; scope=singleton; abstract=false; lazyInit=false; autowireCandidate=false; autowireMode=0; dependencyCheck=0; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [hibernate-context.xml]] with [Root bean: class [org.springframework.orm.hibernate3.HibernateTransactionManager]; scope=singleton; abstract=false; lazyInit=false; autowireCandidate=false; autowireMode=0; dependencyCheck=0; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [hibernate-context.xml]]
2009-07-03 10:57:02,237 INFO [main] xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:303) - Loading XML bean definitions from class path resource [requesterElectronicInvoice.xml]
java.lang.ExceptionInInitializerError
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [requesterElectronicInvoice.xml]
Offending resource: class path resource [applicationContext.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [requesterElectronicInvoice.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition(Ljava/lang/String;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:195)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:145)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:130)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:468)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:363)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:73)
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:61)
at br.com.moip.initializer.ApplicationContextFactoryJob.<init>(ApplicationContextFactoryJob.java:62)
at br.com.moip.initializer.ApplicationContextFactoryJob.<clinit>(ApplicationContextFactoryJob.java:56)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [requesterElectronicInvoice.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition(Ljava/lang/String;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:385)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:185)
... 11 more
Caused by: java.lang.NoSuchMethodError: org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition(Ljava/lang/String;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
at org.springframework.batch.core.configuration.xml.CoreNamespaceUtils.checkForStepScope(CoreNamespaceUtils.java:68)
at org.springframework.batch.core.configuration.xml.CoreNamespaceUtils.autoregisterBeansForNamespace(CoreNamespaceUtils.java:51)
at org.springframework.batch.core.configuration.xml.JobParser.doParse(JobParser.java:61)
at org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser.parseInternal(AbstractSingleBeanDefinitionParser.java:81)
at org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(AbstractBeanDefinitionParser.java:56)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1123)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1113)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:133)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:468)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:363)
... 14 more
Exception in thread "main"
Desde já sou grato!