Erro em JBoss

Bom dia!!

Estou tentando rodar uma aplicação no JBoss comunicando com o MySQL, só que deu o seguinte erro:

10:34:11,114 ERROR [[ServletTestes]] Servlet.service() for servlet ServletTestes threw exception
java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
	at javax.persistence.Persistence.findAllProviders(Persistence.java:79)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
	at br.com.consist.dao.PessoaDao.salvar(PessoaDao.java:25)
	at br.com.consist.servlet.ServletTestes.doPost(ServletTestes.java:40)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Thread.java:619)

No meu DAO bem básico eu estou utilizando o Persistence().createEntityManagerFactory(“JPAProject”);
Veja o DAO abaixo:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.hibernate.HibernateException;

import br.com.consist.bean.PessoaBean;

public class PessoaDao {

	public void salvar(String nome){
		
		EntityManagerFactory emf = null;
		EntityManager em = null;
		
		PessoaBean pessoa = new PessoaBean();
		pessoa.setNome(nome);
		
		try{
			emf = new Persistence().createEntityManagerFactory("JPAProject");
			em = emf.createEntityManager();
			em.persist(pessoa);
			
			
		}catch(HibernateException hex){
			hex.printStackTrace();
		}finally{
			if(em!=null){
				em.close();
			}
		}
		
	}
	
}

no meu persistence.xml eu estou fazendo assim:
eu já vi um exemplo que está usando uma tag provider no persistence.xml colocando org.hibernate.ejb.HibernatePersistence nela.
Não entendi como isso funcionaria…

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
	<persistence-unit name="JPAProject" transaction-type="JTA">
      <jta-data-source>java:/MySQLDS</jta-data-source>
      <properties>
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" />
      <property name="current_session_context_class" value="thread"/>
      	<property name="hibernate.archive.autodetection" value="value, hbm" />
         <property name="hibernate.dialect" 
                  value="org.hibernate.dialect.MySQLInnoDBDialect"/>
         <property name="hibernate.show_sql" value="true" />
         <property name="hibernate.format_sql" value="true" />
	  </properties>
	</persistence-unit>
</persistence>

por favor, se alguém puder me ajudar.

amigo, sei que faz tempo que você postou isso, mas voce lembra qual foi a solução? estou utilizando um projeto maven e está dando o mesmo erro

e sem o projeto maven em um projeto eclipse normal funciona perfeitamente.
se você poder ajudar eu agradeço…

abraço.

Jboss tem uns erros tão amigáveis…rss
este erro do post do baú, parece erro de configuração, a meu ver parece que faltou a propriedade provider

é… acho que não é apenas isso… porque eu ja havia colocado essa dado no meu persistence.xml

mas vou continuar tentando… qualquer coisa eu posto de volta… obrigado…

se tiver mais alguma dica é sempre bem vinda.

Victor,

Conseguiu resolver?

Estou com o mesmo erro! No meu persistence.xml estou declarando o provider

<provider>org.hibernate.ejb.HibernatePersistence</provider>

Qual a lib que esta ligada a este erro?

Dê uma olhada nas libs da sua aplicação porque com certeza está acontecendo um problema de Classloader. O JBoss já vem com o Hibernate e se você não quiser usar o do JBoss isole o classloader da sua aplicação e coloque todas as libs dependentes nela.

Olá danilocmiranda,

acabei de resolver o problema estava nas dependências que eu estava declarando com o maven,
configurei o maven de acordo com o archetype weld e resolveu perfeitamente.

vou enviar aqui a baixo as dependencias que eu adicionei no meu projeto. Lembrando que o meu projeto é uma aplicação enterprise:

a baixo segue o as dependencias presentes no pom do módulo ejb,

[code]
<dependencyManagement>

  &lt;dependencies&gt;

     &lt;!-- Import scope will provide versions for dependencies below. --&gt;

     &lt;dependency&gt;

        &lt;groupId&gt;org.jboss.weld&lt;/groupId&gt;

        &lt;artifactId&gt;weld-extensions-bom&lt;/artifactId&gt;

        &lt;version&gt;1.0.0-CR1&lt;/version&gt;

        &lt;type&gt;pom&lt;/type&gt;

        &lt;scope&gt;import&lt;/scope&gt;

     &lt;/dependency&gt;

  &lt;/dependencies&gt;

</dependencyManagement>

&lt;dependencies&gt;

    &lt;!--dependency&gt;

        &lt;groupId&gt;javax&lt;/groupId&gt;

        &lt;artifactId&gt;javaee-api&lt;/artifactId&gt;

        &lt;version&gt;6.0&lt;/version&gt;

        &lt;scope&gt;provided&lt;/scope&gt;

    &lt;/dependency--&gt;

<!-- CDI (JSR-299) -->

  &lt;dependency&gt;

     &lt;groupId&gt;javax.enterprise&lt;/groupId&gt;

     &lt;artifactId&gt;cdi-api&lt;/artifactId&gt;

     &lt;scope&gt;provided&lt;/scope&gt;

  &lt;/dependency&gt;

  &lt;!-- EJB --&gt;

  &lt;!-- Common annotations (e.g., @PostConstruct, @PreDestroy, @Generated, @Resource) --&gt;

  &lt;dependency&gt;

     &lt;groupId&gt;javax.annotation&lt;/groupId&gt;

     &lt;artifactId&gt;jsr250-api&lt;/artifactId&gt;

     &lt;scope&gt;provided&lt;/scope&gt;

  &lt;/dependency&gt;

  &lt;!-- Bean Validation (JSR-303) --&gt;

  &lt;dependency&gt;

     &lt;groupId&gt;javax.validation&lt;/groupId&gt;

     &lt;artifactId&gt;validation-api&lt;/artifactId&gt;

     &lt;scope&gt;provided&lt;/scope&gt;

  &lt;/dependency&gt;

  &lt;!-- Bean Validation Implementation --&gt;

  &lt;!-- Provides portable constraints such as @NotEmpty, @Email and @Url --&gt;

  &lt;!-- Hibernate Validator is only the JSR-303 implementation at the moment, so we can assume it's provided --&gt;

  &lt;!-- JSF --&gt;

  &lt;!-- JPA --&gt;

  &lt;dependency&gt;

     &lt;groupId&gt;javax.persistence&lt;/groupId&gt;

     &lt;artifactId&gt;persistence-api&lt;/artifactId&gt;

     &lt;scope&gt;provided&lt;/scope&gt;

  &lt;/dependency&gt;


    &lt;dependency&gt;

        &lt;groupId&gt;junit&lt;/groupId&gt;

        &lt;artifactId&gt;junit&lt;/artifactId&gt;

        &lt;version&gt;4.8.1&lt;/version&gt;

        &lt;scope&gt;test&lt;/scope&gt;

    &lt;/dependency&gt;

    &lt;dependency&gt;

    	&lt;groupId&gt;org.hibernate&lt;/groupId&gt;

    	&lt;artifactId&gt;hibernate-validator&lt;/artifactId&gt;

    	&lt;version&gt;4.0.2.GA&lt;/version&gt;

    	&lt;scope&gt;provided&lt;/scope&gt;

    &lt;/dependency&gt;

    &lt;dependency&gt;

     &lt;groupId&gt;javax.faces&lt;/groupId&gt;

     &lt;artifactId&gt;jsf-api&lt;/artifactId&gt;

     &lt;version&gt;2.0.0-RC&lt;/version&gt;

     &lt;scope&gt;provided&lt;/scope&gt;

  &lt;/dependency&gt;
&lt;/dependencies&gt;[/code]

o meu projeto sem o maven funcionava perfeitamente, só adicionando as bibliotecas do jboss pelo eclipse, mas depois que adicionei o maven tive de dar uma suada para conseguir configurar com as mesmas tecnologias que estava utilizando no projeto inicial que são

jpa 2.0, ejb 3.1, hibernate 3, jsf 2.0 , primefaces

essa

O Jboss utiliza Hibernate por padrão, com isso ao declarar as libs do seu projeto no pom.xml você tem que colocar a tag provided, que ao ser colocada em um container web, utilizará a do container não a sua.

Eu resolvi o meu problema colocando

<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-parent</artifactId>
<version>7.0.2.Final</version>
<type>pom</type>
<scope>import</scope>

		&lt;/dependency&gt;

ele usa as dependências nativas do jboss