Olá,
Estou tentando rodar no JBoss 4.2 uma aplicação cuja implementação JPA é a RI (Toplink Essentials). Porém o JBoss já vem com a implementação Hibernate. Ao tentar criar o EntityManagerFactory ocorre o erro abaixo:
javax.servlet.ServletException: #{calculoMB.criarCalculo}: java.lang.RuntimeException: java.lang.ClassCastException: oracle.toplink.essentials.PersistenceProvider cannot be cast to javax.persistence.spi.PersistenceProvider
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
O Toplink entra em conflito com o Hibernate. Como fazer para o JBoss “entender” que PersistenceProvider que quero é o oracle.toplink.essentials.PersistenceProvider e não o javax.persistence.spi.PersistenceProvider? Já coloquei o TopLinkEssentials.jar no lib do JBoss, mas não deu certo…
O trecho de código onde ocorre o erro:
EntityManagerFactory emf = Persistence.createEntityManagerFactory(Constants.PERSISTENCE_UNIT); //Constants.PERSISTENCE_UNIT = “calculo”
Meu persistence.xml:
<?xml version="1.0" encoding="UTF-8"?> oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider br.gov.df.outorga.entity.Calculo br.gov.df.outorga.entity.Pessoa br.gov.df.outorga.entity.Solicitacao[]'s
Sávio Barros