Java Eclipse无法识别persistence.xml的内容

Java Eclipse无法识别persistence.xml的内容,java,eclipse,orm,jpa,m2eclipse,Java,Eclipse,Orm,Jpa,M2eclipse,我在eclipse中遇到以下错误: persistence.xml文件没有可识别的内容 我的persistence.xml文件在我的应用程序中工作得很好,但eclipse一直给我这个错误。我在移动文件并用m2eclipse更新项目配置后得到了这个结果。我没有更改文件本身。有人知道怎么解决这个问题吗 persistence.xml: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="h

我在eclipse中遇到以下错误:

persistence.xml文件没有可识别的内容

我的persistence.xml文件在我的应用程序中工作得很好,但eclipse一直给我这个错误。我在移动文件并用m2eclipse更新项目配置后得到了这个结果。我没有更改文件本身。有人知道怎么解决这个问题吗

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
    <persistence-unit name="localDB" transaction-type="RESOURCE_LOCAL">

        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
        <class>package.Users</class>
        <properties>
            <!-- enable warnings for debugging -->
            <property name="openjpa.Log" value="DefaultLevel=TRACE, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
            <!-- connection properties -->
            <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/test"/>
            <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
            <property name="openjpa.ConnectionUserName" value="root"/>
            <property name="openjpa.ConnectionPassword" value=""/>

        </properties>
    </persistence-unit>
</persistence>

org.apache.openjpa.persistence.PersistenceProviderImpl
包.用户
更新

看起来像是m2eclipse和jpa组合中的一个bug


通过将选项设置为将其显示为警告而不是错误来临时解决此问题

文件在项目结构中的位置如何


对于ref,我在maven模块名/src/main/resources/META-INF/

中有我的,很难说,因为很难复制(您的
persistence.xml
是完全有效的),但可能尝试:

  • 清理项目(“项目>清理”和Maven
    Clean
  • 强制Eclipse再次验证XML文件(右键单击,然后选择验证XML文件)

我有几次遇到同样的问题,对我有效的方法是复制文件的内容,删除它,创建一个新的persistence.xml文件并将内容粘贴回。

我发现了这里的问题所在。。。。JPA方面假设META-INF文件夹直接位于源文件夹下。如果您使用的是Maven项目,那么可能有src/main/resources或src/test/resources之类的内容。如果您的persistence.xml位于这些文件夹下,它将发出抱怨。如果您创建一个新的源文件夹(称之为“jpa”)并在其中创建META-INF/persistence.xml,那么它将成功找到它。(我还必须做一个干净/关闭/打开的项目)


这当然是一种痛苦。。。。我可以看到很多情况下,这种方法都不能很好地工作。

将此错误转化为警告可能会使问题消失,但它不会解决Eclipse Dali插件的潜在问题。这也意味着非常有用的JPA结构和JPA细节视图将无法工作

OP提供的链接和这里大多数答案的方法实际上是为了解决一个不同的问题,Maven想过滤persistence.xml文件,因此告诉Eclipse忽略它。本文解释了解决该问题的可行方法,包括从项目属性的类路径中的src/main/resources条目中删除exclused:'**'

回到OP最初的问题,我收到了完全相同的错误消息(它本身告诉您persistence.xml文件已经找到)。对我来说,解决方案是从以下内容更改持久性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_1_0.xsd"
    version="1.0">

为此:

<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">


一旦改变,错误就消失了,达利立刻活跃起来,现在一切正常。希望有一天这能帮助别人。

我遇到了同样的问题。转到项目属性->Java构建路径->源,删除src/main/resources源的*/.Java excluded属性。然后添加META-INF/persistence.xml。然后重新启动eclipse。您应该在Project explorer中的JPA内容下找到persistence.xml。之后,恢复您的更改

好吧,我的建议看起来很愚蠢,但神奇的是它奏效了。顺便说一下,我的eclipse版本是3.6。


<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">

为我工作

我通过转到Project-Properties-Java Persistence:修复了这个问题,然后将“规范元模型(JPA2.0)”部分中的“源文件夹”设置为:“src/generated/resources”

我在Eclipse3.6(Helios)中也遇到了同样的问题。原因是JPA方面被设置为JPA版本1.0,但是我的persistence.xml文件指定了JPA版本2。因此,我将JPA方面更改为2.0版,问题就消失了。(项目-->属性-->项目方面-->“配置”下拉列表-->将其设置为“最小JPA 2.0配置”

有相同的错误问题

persistence.xml文件没有可识别的内容


通过在eclipse中编辑文件进行修复,任何编辑都可以。保存后,错误消失。

我通过创建“符号链接”解决了这个问题在Eclipse.So中,我的persistence.xml文件保留在src/main/resources/META-INF中,正如Maven所期望的那样,m2eclipse所要求的那样。但是,为了解决Dali问题,请在src/main/java/META-INF中创建一个新文件,该文件链接到src/main/resources/META-INF中的文件。您可以通过点击“高级”按钮来实现这一点创建新文件并使用“浏览…”按钮定位文件时的选项。请注意,这不会在META-INF文件夹中创建物理文件,但是,创建链接需要文件夹本身


希望对您有用。

Indigo(2011年6月发布)解决了此问题,请参阅和


“persistence.xml文件没有可识别的内容。”在项目导入或工作区启动时,错误可能仍然会随机出现,但可以通过project clean或maven项目更新来修复。这将在SR2中的Dali中修复。

我也遇到了同样的问题,为了消除它,我必须确保这一行是文件顶部的第一行(没有前导空行或空格):


对于某些Indigo(3.7)版本,该错误再次出现。请参见此处:

右键单击project->Maven->更新项目配置

这可能会破坏某些构建路径条目和/或部署程序集,非常烦人,因此仅在更改Maven deps时才这样做


要解决persistence.xml消息,直到发布修补程序,您需要在许多操作上清理项目,因为即使将错误级别设置为“忽略”也不起作用。这完全是一个问题。

对此有任何更新吗?这仍然是一个问题
<?xml version="1.0" encoding="UTF-8"?>