UPDATE: 我已经解决了这个问题,将jar逐个添加到类路径并进行调试 . 我有两个相互对峙的 jar . 这些 jar 与REST有关 .

当我尝试启动webapp时,我收到此异常:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named fooBar

我正在使用REST和Hibernate,我有以下持久性xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
    version="2.1">

<persistence-unit name="fooBar" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>

    <class>whateverpackage.Users</class>
    <class>whateverpackage.Messages</class>

    <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode> 

    <properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Test2?createDatabaseIfNotExist=true" />
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
        <property name="hibernate.connection.username" value="root" />
        <property name="hibernate.connection.password" value="password" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.use_sql_comments" value="true" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
        <property name="hibernate.cache.use_query_cache" value="true"/>
        <property name="hibernate.cache.use_second_level_cache" value="true"/>
        <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory" />

    </properties>
</persistence-unit>

我使用的是最新的Jersey和Hibernate,它们被添加到类路径中 . 包含persistence.xml的META-INF文件夹位于项目的src文件夹中 .

  • 泽西JAX-RS 2.1 RI捆绑

  • Hibernate 5.2.10.Final

  • Apache Tomcat / 9.0.0.M21

  • java版本1.8.0_121

我在类路径中有以下jar:

  • antlr-2.7.7.jar

  • aopalliance-repackaged-2.5.0-b42.jar

  • cdi-api-1.1.jar

  • 同学-1.3.0.jar

  • commons-io-2.5.jar

  • dom4j-1.6.1.jar

  • el-api-2.2.jar

  • gson-2.2.2.jar

  • hibernate-commons-annotations-5.0.1.Final.jar

  • hibernate-core-5.2.10.Final.jar

  • hibernate-entitymanager-5.2.10.Final.jar

  • hibernate-jpa-2.1-api-1.0.0.Final.jar

  • hk2-api-2.5.0-b42.jar

  • hk2-locator-2.5.0-b42.jar

  • hk2-utils-2.5.0-b42.jar

  • jackson-annotations-2.8.8.jar

  • jackson-core-2.8.8.jar

  • jackson-databind-2.8.8.jar

  • jandex-2.0.3.Final.jar

  • java-json.jar

  • javassist-3.20.0-GA.jar

  • javassist-3.22.0-CR2.jar

  • javax.annotation-api-1.2.jar

  • javax.inject-1.jar

  • javax.inject-2.5.0-b42.jar

  • javax.json-1.1.jar

  • javax.json-api-1.1.jar

  • javax.json.bind-api-1.0.jar

  • javax.servlet-api-3.0.1.jar

  • javax.ws.rs-api-2.1-m09.jar

  • jaxb-api-2.2.7.jar

  • jboss-interceptors-api_1.1_spec-1.0.0.Beta1.jar

  • jboss-logging-3.3.0.Final.jar

  • jboss-transaction-api_1.2_spec-1.0.1.Final.jar

  • jersey-client.jar

  • jersey-common.jar

  • jersey-container-servlet-core.jar

  • jersey-container-servlet.jar

  • jersey-hk2.jar

  • jersey-media-jaxb.jar

  • jersey-media-json-binding.jar

  • jersey-media-sse.jar

  • jersey-server.jar

  • json-simple-1.1.1.jar

  • jsr250-api-1.0.jar

  • jstl-1.2.jar

  • jtds-1.2.2.jar

  • mysql-connector-java-5.1.43-bin.jar

  • org.osgi.core-4.2.0.jar

  • osgi-resource-locator-1.0.1.jar

  • persistence-api-1.0.jar

  • validation-api-1.1.0.Final.jar

  • yasson-1.0.jar