Caras, já procurei no fórum sobre esse assunto e não achei. Se já tiver sido discutido, por favor mandem o link!
Temos uma aplicação que deve rodar tanto no GAE quanto em ambiente proprietário, onde faremos a persistência em PostgreSQL via Hibernate.
A interface de persistência é comum aos dois casos, mas a implementação é diferente… A aplicação está sendo construída considerando as restrições do GAE.
Pensei em mover as classes que implementam a persistência para um .JAR, dessa forma eu poderia distribuir a aplicação para diferentes ambientes apenas alterando esses .JARs.
Dessa forma eu teria algo como:
WEB-INF/lib/myapp-hibernate-impl.jar
ou
WEB-INF/lib/myapp-bigtables-impl.jar
Cada distribuição conterá apenas um deles…
Dentro desses .JAR eu tenho “br.com.mycompany.myapp.dao.impl.GpsDao.java” anotada como “@Component”
O problema é que o VRaptor (ou Spring) não está enxergando essa classe para injetar no meu código, dando o seguinte erro (resumido):
org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [br.com.mycompany.myapp.dao.IGpsDao] is defined: Unsatisfied dependency of type [interface br.com.mycompany.myapp.dao.IGpsDao]: expected at least 1 matching bean
Isso não deveria funcionar? Estou esquecendo algum ponto? Alguma outra idéia/observação?
Tomei por base a gae-blank app disponibilizada, e funcionava antes dessa alteração.
Obs.: Editei pq esqueci de dizer que era sobre o vraptor3