Vraptor 3 - Não encontrando componentes

4 respostas
renanpto

Boa Tarde,

Migrei um projeto criado com a estrutura tradicional de projetos web para utilizar o maven 2 e aproveitei para separar o projeto em modulos.

Ficando ± assim (modulos):
-modulo-service
-modulo-entity
-modulo-vraptor
-modulo-web

Quando vou acessar o sistema, acaba ocorrendo um erro pois não consegue encontrar os compontes do VRaptor, exibindo o erro abaixo:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.pacote.ComponentXXX] is defined: Unsatisfied dependency of type [class br.com.pacote.ComponentXXX]: expected at least 1 matching bean
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:622)

Com a mudanca adicionei o parametro <param-name>br.com.caelum.vraptor.packages</param-name> no web.xml indicando onde estão as classes anotadas com @Resource, tambem teria que adicionar os pacotes onde estão os componentes @Component???

4 Respostas

G

O projeto vraptor não deveria ser o mesmo web?

renanpto

Nao, esse modulo-web é o projeto web do maven, contendo arquivos jsp, css, imgs, etc. E possui a dependencia para o modulo-vraptor.
Assim as classes do modulo-vraptor estarão dentro de um jar dentro do .war.

Lucas_Cavalcanti

tudo que estiver dentro de um jar tem que estar com o pacote declarado no parâmetro de packages…

o vraptor só pega automaticamente os .class que estão em WEB-INF/classes

vc pode tb gerar o jar com o arquivo META-INF/br.com.caelum.vraptor.packages contendo o pacote base do que está dentro do jar

renanpto

Exatamente foi o que imaginei, agora não estou trabalhando nesse projeto, depois irei conseguir realizar o teste.

Certo, dessa maneira não conhecia. Quero testar dessa forma tambem.

Criado 2 de maio de 2011
Ultima resposta 2 de mai. de 2011
Respostas 4
Participantes 3