Bean do Spring no VRaptor

1 resposta
foxpv

Pessoal, mais uma vez venho eu com uma dúvida na utilização do VRaptor, seguinte:

Meu projeto depende de um core, onde nesse core eu defini um @Component do spring e esse core é exportado para a lib do projeto em forma de um jar. Mas quando na inicialização do tomcat, acontece o seguinte erro:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'stereotypedBeansRegistrar': Unsatisfied dependency expressed through constructor argument with index 0 of type [java.util.List]: : Cannot find class [br.com.apetiteweb.domain.dao.ClienteDAO] for bean with name 'clienteDAO' defined in URL [jar:file:/Applications/apache-tomcat-7.0.12/webapps/Cliente/WEB-INF/lib/core.jar!/br/com/apetiteweb/domain/dao/ClienteDAO.class]; nested exception is java.lang.ClassNotFoundException: br.com.apetiteweb.domain.dao.ClienteDAO; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [br.com.apetiteweb.domain.dao.ClienteDAO] for bean with name 'clienteDAO' defined in URL [jar:file:/Applications/apache-tomcat-7.0.12/webapps/Cliente/WEB-INF/lib/core.jar!/br/com/apetiteweb/domain/dao/ClienteDAO.class]; nested exception is java.lang.ClassNotFoundException: br.com.apetiteweb.domain.dao.ClienteDAO
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at org.springframework.context.event.AbstractApplicationEventMulticaster.getApplicationListeners(AbstractApplicationEventMulticaster.java:148)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:86)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:106)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:87)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4562)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5240)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5235)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [br.com.apetiteweb.domain.dao.ClienteDAO] for bean with name 'clienteDAO' defined in URL [jar:file:/Applications/apache-tomcat-7.0.12/webapps/Cliente/WEB-INF/lib/core.jar!/br/com/apetiteweb/domain/dao/ClienteDAO.class]; nested exception is java.lang.ClassNotFoundException: br.com.apetiteweb.domain.dao.ClienteDAO
	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1250)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1319)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:315)
	at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:829)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:744)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
	... 30 more
Caused by: java.lang.ClassNotFoundException: br.com.apetiteweb.domain.dao.ClienteDAO
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
	at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
	at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271)
	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242)

Como podemos ver, não está achando a classe que está anotada com o @Component. Eu já abri o jar que está dentro da lib pra ver, e a classe está lá. Além disso, pesquisei em outros tópicos e neles falavam pra colocar o vraptor e suas dependências na WEB-INF/lib, o que já está acontecendo.

1 Resposta

Lucas_Cavalcanti

a classe tá lá como .java ou .class?

considere gerar o jar com outra ferramenta, por exemplo ant ou maven…

tente também dar um clean no servidor e no projeto pra forçar que o jar mais recente vai estar deployed no servidor

Criado 8 de julho de 2011
Ultima resposta 8 de jul. de 2011
Respostas 1
Participantes 2