Eu tinha um projeto web que funcionava muito bem quando eu usava apenas um persistence unit. Quando houve a necessidade de utilizar outro (acessar outro banco de dados) comecou a dar problemas. Não consigo fazer o deploy no servidor pois ele alega que ele não encontra esta nova persistence unit! (“Runtime Exception - Could not resolve a persistence unit corresponding to the persistence-context-ref-name []”)
Porque este erro ocorre? Criei a persistence unit pelo Netbeans e “sei” que sua configuração está adequada. Na minha classe eu possuia apenas um EntityManager marcado com @PersistenceContext. Agora que são dois, o segundo (na ordem de inserção do Persistence.xml) não é encontrado - se eu trocar a ordem no XML ele dará erro porém apontando para a outra unidade de persistencia.
Porque? O que devo fazer para que ele encontre as duas unidades de persistencia?
Estou com a seguinte notação no meu entity manager:
Acredito eu que você deva criar o outro persistence.xml num jar separado, como se fosse um projeto à parte, e depois fazer referência a ele no classpath do projeto “principal”.
Pq ele permite adicionar outras persistence units em um mesmo xml, inclusive sendo possível acessar outro banco se eu tenho que usar um arquivo separado?
Resolvi o problema. Criei outra classe que acessava esta outra persistence unit. Conclui que realmente não seria possível fazer isso sem um driver XA do sql. Agora as “querys” são feitas depois que a outra já acabou.