Olá pessoal,
Novamente volto com o problema de deploy de entities.
Bom, eu fiz o seguinte teste. Um projeto EAR que possui apenas uma entity (usuario) e que possui a seguinte estrutura:
app1.ear
/META-INF/application.xml
app1-entity.jar (tem apenas a entity Usuario.java e o persistence.xml, apontado para o ds app1)
app1-service-impl.jar (contendo @Local UsuarioFacadeLocal, @Remote UsuarioFacadeRemote e @Stateless UsuarioFacadeBean)
app1-service.jar (contendo UsuarioFacade)
app1-web.war
O próximo EAR precisa da entity Usuario. Portanto, distribuí o jar app1-entity.jar e app1-service.jar no app2. Segue a estrutura:
app2.ear
/lib/app1-entity.jar
/lib/app1-service.jar
/META-INF/application.xml
app2-entity.jar (tem apenas a entity Log.java e o persistence.xml, apontando para o ds app2. Log possui uma referência ManyToOne para Usuario)
app2-service-impl.jar (contento @Local LogFacadeLocal, @Remote LogFacadeRemote e @Stateless LogFacadeBean)
app2-service.jar (contendo LogFacade)
app2-web.war
Quando faço o deploy dessas duas aplicações, não ocorre nenhum erro. Porém, existem duas instâncias da classe Usuario (uma que subiu em app1 e outra que subiu em app2). Li num site wiki do jboss que esse tipo de coisa pode gerar ClassCastException (o que já ocorreu em um outro projeto - por isso estou fazendo esse teste). http://wiki.jboss.org/wiki/Wiki.jsp?page=ClassCastExceptions.
Para tentar resolver esse problema, eu tirei o app1-entity.jar do app2.ear. Porém, ele não consegue fazer deploy, Segue o erro:
09:24:32,143 WARN [ServiceController] Problem starting service persistence.units:ear=app2.ear,unitName=managerApp2
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on br.unicamp.hc.app2.ejb.entity.Log.usuario references an unknown entity: br.unicamp.hc.app1.ejb.entity.Usuario
Agora estou com esse problema. Se duplico os jars, corro o risco de ter uma ClassCastException. Se não duplico, uma aplicação não acha o jar da outra.
Como posso resolver esse problema?
Obrigada!

