Olá pessoal! Meu problema envolve 3 projetos, sendo eles:
[quote] Projeto A - um projeto web usando VRaptor
Projeto B - um projeto auxiliar com algumas classes genéricas para auxiliar o Web. Esse é um web-fragment.
Projeto C - um web-fragment necessário para alguns métodos do Projeto B[/quote]
No Projeto A eu faço a injeção de um @Component do VRaptor localizado no Projeto B. A injeção é feita via construtor:
Meu objeto que estou injetando está anotado conforme o seguinte:
[code]
import br.com.caelum.vraptor.ioc.Component;
@Component
public class MeuObjeto implements MinhaInterface {
@Autowired
InterfaceProjetoC objProjetoC
}[/code]
Porém, essa implementação do “MeuObjeto” utiliza uma implementação que está no Projeto C, como descrito acima. Esse objeto está anotado no Projeto C com @Component do Spring.
Já tentei fazer a injeção no MeuObjeto tanto via construtor quanto via anotação @Autowired, porém o Spring não encontra a implementação.
Tenho um applicationContext.xml no Projeto C habilitando o auto-scan:
Para o meu @Component do Projeto B ser detectado pelo VRaptor precisei informar o pacote onde se encontra a implementação no web.xml (Projeto A). Como abaixo:
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>
br.com.caelum.vraptor.converter.l10n,
br.com.caelum.vraptor.restfulie,
br.com.meu.pacote.projetob
</param-value>
</context-param>
Mesmo informando o pacote do Projeto C nesse parâmetro o Spring ainda não encontra a implementação.
Um detalhe importante é que se eu anoto a classe do Projeto C com o @Component do VRaptor tudo funciona como o esperado. Porém não gostaria de manter essa dependência do VRaptor no Proejto C somente por causa desse ponto. Gostaria de manter a dependência somente do Spring.
Assim sendo, como devo proceder para utilizar o @Component do Spring no meu Projeto C?
Desde já muito obrigado pela ajuda.