当前位置: 首页 > 知识库问答 >
问题:

Maven/Eclipse:找不到任何META-INF/persistence。类路径中的xml文件

夏华藏
2023-03-14

我知道关于这个问题还有其他问题,但没有一个解决方案对我有效。我正在使用maven在eclipse中构建一个java项目,我有我的持久性。src/main/resource/META_INF文件夹中的xml文件。但当我尝试安装mvn时,总是会出现以下错误:

No Persistence provider for EntityManager named plasma.persistence

从控制台输出来看,这似乎是由以下原因造成的:

[org.hibernate.jpa.boot.internal.PersistenceXmlParser] - HHH000318: Could not find any META-INF/persistence.xml file in the classpath

这是我的persistence.xml文件:

<persistence 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_2_0.xsd"
    version="2.0">
<persistence-unit name="plasma.persistence" transaction-type="RESOURCE_LOCAL">
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.spatial.dialect.postgis.PostgisDialect"/>
        <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
        <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432:xxxxx"/>
        <property name="hibernate.connection.username" value="xxxxx"/>
        <property name="hibernate.connection.password" value="xxxxx"/>
        <property name="hibernate.connection.pool_size" value="5"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.max_fetch_depth" value="5"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
</persistence-unit>

我试着右键点击项目,并将META_INF文件夹添加到构建路径中,但仍然不起作用。有什么想法吗?

共有2个答案

章高朗
2023-03-14

我放置了一个排除项,maven停下来放置持久性。xml。我不得不使用残酷的武力来修复:

    <resources>
        <!-- After this maven stopped to put parsistence.xml-->
        <resource>
            <directory>src/main/resources/CATALINA_HOME/conf</directory>
            <excludes>
                <exclude>log4j.properties</exclude>
                <exclude>jpa_stocks.properties</exclude>
            </excludes>
        </resource>
        <!-- Brutal force to fix -->
        <resource>
            <directory>src/main/resources/META-INF</directory>
            <targetPath>META-INF</targetPath>
            <includes>
                <include>persistence.xml</include>
            </includes>
        </resource>
    </resources>
方兴旺
2023-03-14

持久性文件的正确主目录应该是src/main/resources/META-INF。在这个问题中,您提到了src/main/resource/META_-INF。注意,参考资料中应该有一个“s”,META-INF中应该有一个破折号(-),而不是下划线。这些只是问题中的拼写错误吗?如果没有,请修复路径,它应该可以工作。

 类似资料:
  • 我为学校准备了一个Java小项目。我将EclipseNeon与JPA图表编辑器和JavaFX结合使用。问题- 那么,项目怎么可能找不到一个文件,而我没有更改文件夹或文件名。。。或者任何可能与路径有关的东西?我只找到了路径错误的答案,但结构是通过JPA创建的,并且有效,所以我认为这不应该是问题所在。 谢谢你的帮助,如果语法不太好,我很抱歉。

  • 我试图使用WildFly和Maven运行一个简单的EJB示例,但却停留在我应该创建一个持久性单元的阶段。因此,我创建了一个PostgreSQL数据库,配置了Wildfly数据源并编写了一个persistence.xml文件。但WAR似乎从不包含persistence.xml,所以每次尝试创建EntityManager时,我都会从Wildfly获得以下信息和错误: 11:55:57,664信息[or

  • 在彻底搜索了这些论坛寻找答案后,我找不到一个类似于我的案例。 在使用maven生成WAR filer并部署我的服务器之后,每次我向需要创建DAO的API发送GET请求时,我都会在服务器控制台收到以下警告: 在类路径中找不到任何meta-inf/persistence.xml文件 和以下例外情况: 没有名为mim_ajuda的EntityManager的持久性提供程序 在进一步讨论之前,我已经搜索了

  • 我试图添加JPA到我的项目,但总是得到这些错误: 但是当我尝试初始化我的实体管理器时: 我收到了这些错误,但我不明白这是怎么可能的,然后我清楚地将该文件添加到我的数据库中。罐子 坚持不懈xml内容是: 这里可以看到项目和编译的jar的结构(持久性内容更改为2.2版本,如前所述): 我做错了什么? 更新:即使查找命令返回文件存在于正确的目录: 更多更新:我试图从另一个项目复制persistence.

  • 我正在尝试使用GraalVM原生映像来编译一个Spring Boot项目来构建一个. exe文件。 我的pom。xml: 当我使用mvn软件包时,出现了错误: 我试着改变maven的配置,试着使用不同的镜像下载插件,试着使用不同版本的插件。无论我如何操作,它都会不断报告错误。 我的环境: os: windows10 jdk:graalvm-ce-java11-windows-amd64-21.2.

  • 因此,在我的主程序中,我运行以下内容。 它总是返回false,这意味着它没有找到'dummydevice' 在我的eclipse项目中,我在'src'处创建了一个名为META-INF的文件夹,在它下面创建了一个名为'services'的子文件夹。 我做对了吗?我看到的每一个关于SPI的例子都是关于加载JAR的。我不是在加载一个JAR,我是想在同一个项目中运行一个类。这个方法只适用于装入罐子吗?我希