SpringFramework não encontra um método existente

0 respostas
Bruno_Gambier

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!

Criado 3 de julho de 2009
Respostas 0
Participantes 1