Tenho um módulo WEB que foi exportado para um JAR e colocado nas bibliotecas do tomcat, fazendo isso, todas as aplicações nesse tomcat ganham várias páginas e funcionalidades. Esse módulo é o core da nossa aplicação. Cada app web nesse tomcat pode fazer especializações, utilizando as classes e páginas do core.
Todas essas aplicações usam JSF, Richfaces, Facelets, Hibernate, JPA e Spring.
Existe um outro módulo que depende desse core que também está no tomcat, uma das classes nele tem injeção de dependencia de uma classe DAO do core, mais ou menos assim:
O segundo modulo, quando rodado na minha maquina de desenvolvimento (ele sendo a aplicação WEB com o JAR do core) roda normalmente. Mas quando coloco os dois como JARs dentro do tomcat, recebo esse erro:
Olhando o codigo exemplo e erro já dá pra deduzir meu problema, caso não tenha sido claro. Só precisam ter em mente que são dois JARs a parte que estão como bibliotecas do tomcat.
Ninguem? Realmente estou precisando de uma resposta!
Mero_Aprendiz
Bem, não sou o maior especialista em Spring; menos ainda em Tomcat, mas em uma busca rápida pela net vi que algumas pessoas tiveram problemas semelhantes ao seu, por terem libs dentro da pasta de libs do Tomcat.
Minha pergunta é a seguinte:
A pasta lib do Tomcat é o melhor lugar pra colocar esse jar mesmo? =/
[]'s
JL
Guilherme_Gomes
Sim, pois todas as minhas aplicaçoes naquele tomcat usam as paginas, classes e recursos do core. Se eu tiro do tomcat e coloco em cada aplicação, alem de ficar maluco na hora de prestar manutenção, o uso de memória vai lá pro alto.
Alexandre_Saudate
Dá esse erro porque o Spring precisa que suas classes de recursos implementem interfaces… o Spring sempre transforma os beans em proxies, de maneira que eles não são mais o bean original. Entretanto, tudo funciona bem quando você faz sua classe implementar uma interface, e passa a referenciar essa interface.
[]´s
Guilherme_Gomes
Meu sistema está bem desacoplado, tudo funciona legal e através de interfaces.
Quanto a essa parte de proxies, eu sei, o estranho é que quando coloco o core no tomcat e o segundo modulo na aplicacao, tudo funciona direitinho. Mas ao colocar o segundo modulo no tomcat tbm que lanca esse erro!
Alexandre_Saudate
Guilherme Gomes:
Meu sistema está bem desacoplado, tudo funciona legal e através de interfaces.
Quanto a essa parte de proxies, eu sei, o estranho é que quando coloco o core no tomcat e o segundo modulo na aplicacao, tudo funciona direitinho. Mas ao colocar o segundo modulo no tomcat tbm que lanca esse erro!
Não seria conflito de nomes (duas classes com o mesmo nome) ?
[]´s
Guilherme_Gomes
Não por duas razões:
O meu sistema inicializa normal, só quando a pagina é acessada que lança o erro.