Hibernate 为什么我会得到一个“a”;没有名为myclientunit的EntityManager的持久性提供程序;例外?

Hibernate 为什么我会得到一个“a”;没有名为myclientunit的EntityManager的持久性提供程序;例外?,hibernate,jboss,transactions,jta,persistence.xml,Hibernate,Jboss,Transactions,Jta,Persistence.xml,我试图在JBoss4.2.3.GA上部署一个JAR文件。我正在使用Hibernate4.1.5.SP1和Validator4.3.0.Final。Maven依赖项是 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>${h

我试图在JBoss4.2.3.GA上部署一个JAR文件。我正在使用Hibernate4.1.5.SP1和Validator4.3.0.Final。Maven依赖项是

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>${hibernate.validator.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
        <exclusions>
            <exclusion>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
编辑:包括我的数据源文件,位于$JBOSS_HOME/server/default/deploy/mysql-ds.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml 71535 2008-04-01 07:05:03Z adrian@jboss.org $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/parentco</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>myproject</user-name>
    <password>password</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers 
    <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> -->


    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

MySqlDS
jdbc:mysql://localhost:3306/parentco
com.mysql.jdbc.Driver
我的项目
密码
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
mySQL

hibernate-entitymanager-3.4.0.GA.jar
(或您使用的是哪个版本的hibernate)添加到您的LIB和类路径中。
或依赖关系(如果您使用的是maven)

org.hibernate
休眠实体管理器
3.4.0.GA

jboss中是否有数据源文件?是的,我已经在问题中包含了内容。谢谢
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.datasource">java:/MySqlDS</property>
        <property name="hibernate.connection.pool_size">10</property>
        <property name="show_sql">true</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <mapping class="com.parentco.fdr.myproject.model.UserRole" />
        <mapping class="com.parentco.fdr.myproject.model.Organization" />
        <mapping class="com.parentco.fdr.myproject.model.Product" />
        <mapping class="com.parentco.fdr.myproject.model.State" />
        <mapping class="com.parentco.fdr.myproject.model.Country" />
        <mapping class="com.parentco.fdr.myproject.model.AccessCode" />
        <mapping class="com.parentco.fdr.myproject.model.Contract" />
        <mapping class="com.parentco.fdr.myproject.model.TrainingLink" />

    </session-factory>
</hibernate-configuration>
14:12:58,470 ERROR [JobRunShell] Job default.job.0.1345057732332 threw an unhandled Exception: 
javax.ejb.EJBTransactionRolledbackException: No Persistence provider for EntityManager named myclientunit
    at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
    at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
    at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:249)
    at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:268)
    at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:138)
    at $Proxy83.execute(Unknown Source)
    at org.jboss.resource.adapter.quartz.inflow.QuartzJob.execute(QuartzJob.java:57)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named myclientunit
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
    at org.mainco.subco.dido.service.AbstractHibernateTxnService.startOperation(AbstractHibernateTxnService.java:27)
    at org.mainco.subco.dido.service.OrderServiceImpl.getContractsFromOpportunities(OrderServiceImpl.java:169)
    at org.mainco.subco.dido.quartz.ProcessOrdersWorker.work(ProcessOrdersWorker.java:29)
    at org.mainco.subco.dido.quartz.ProcessOrdersJob.execute(ProcessOrdersJob.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
    at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
    at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
    ... 11 more
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mysql-ds.xml 71535 2008-04-01 07:05:03Z adrian@jboss.org $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/parentco</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>myproject</user-name>
    <password>password</password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <!-- should only be used on drivers after 3.22.1 with "ping" support
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
    -->
    <!-- sql to call when connection is created
    <new-connection-sql>some arbitrary sql</new-connection-sql>
      -->
    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers 
    <check-valid-connection-sql>SELECT 1</check-valid-connection-sql> -->


    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>