【问题标题】:Persistence.xml not correctly configured未正确配置 Persistence.xml
【发布时间】:2012-06-18 14:04:13
【问题描述】:

我无法正确获取此持久性文件...我在用作指南的书中找不到更多信息。我正在使用 MySQL 数据库。

<?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="a11_DA_g5_PU" transaction-type="JTA">
        <jta-data-source>a11_DA_g5</jta-data-source>
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>entities.Book</class>
        <class>entities.Author</class>
        <class>entities.Customer</class>
        <class>entities.Membership</class>
        <properties>
          <property name="eclipselink.target-database" value="DERBY"/>
          <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
          <property name="javax.persistence.jdbc.url" value="jdbc:mysql://studev.groept.be:3306/a11_DA_g5"/>
          <property name="javax.persistence.jdbc.user" value="a11_DA_g5"/>
          <property name="javax.persistence.jdbc.password" value="passwordhere"/>
          <property name="eclipselink.ddl-generation" value="create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>

编辑

严重:DPL8015:存档 [EJBModule_jar] 中部署描述符文件 META-INF/persistence.xml 中的部署描述符无效。 第 6 行第 15 列 -- cvc-complex-type.2.4.a:发现以元素“提供者”开头的无效内容。 '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode, "http://java.sun.com/xml/ns/persistence":validation-mode 之一, "http://java.sun.com/xml/ns/persistence":properties}' 是预期的。

严重:DPL8005:部署描述符解析失败:cvc-complex-type.2.4.a:发现以元素“提供者”开头的无效内容。 '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode, "http://java.sun.com/xml/ns/persistence":validation-mode 之一, "http://java.sun.com/xml/ns/persistence":properties}' 是预期的。

严重:部署应用时出现异常 [VaadinTestApp]

严重:org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:发现以元素“提供者”开头的无效内容。 '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode, "http://java.sun.com/xml/ns/persistence":validation-mode 之一, “http://java.sun.com/xml/ns/persistence”:properties}' 是预期的。 java.io.IOException:org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:发现以元素“提供者”开头的无效内容。 '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode, "http://java.sun.com/xml/ns/persistence":validation-mode 之一, "http://java.sun.com/xml/ns/persistence":properties}' 是预期的。

【问题讨论】:

  • 错误信息是什么意思?错误消息旨在被阅读。我敢肯定它不只是说“出了点问题”。

标签: java jdbc persistence ejb jta


【解决方案1】:

&lt;persistence-unit&gt; 中的元素顺序很重要,&lt;jta-data-source&gt; 应该在 &lt;provider&gt; 之后:

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
<jta-data-source>a11_DA_g5</jta-data-source>         

【讨论】:

  • 好的,这似乎有所改善。现在出现另一个错误: 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“值 IDENTITY_VAL_LOCAL()”附近使用正确的语法
  • 请注意eclipselink.target-databaseDERBY,但连接 URL 指向 MySQL。
  • 也觉得很奇怪,但我找不到任何如何将它指向 MySQL 的东西。你能给我指路吗?
  • @mmvie 将该属性的值更改为 mysql
  • 哇。元素的顺序很重要吗?我知道这根本不是 XML 的错,但仍然……还有一个不喜欢 XML 的理由。注释,有人吗?
【解决方案2】:

正如the XSD 所说,&lt;provider&gt; 元素必须在 &lt;jta-data-source&gt; 元素之前。

【讨论】:

  • 确定元素是否有序是:xsd:sequence(确定顺序)xsd:all(无顺序)
猜你喜欢
  • 2013-10-18
  • 1970-01-01
  • 2012-01-16
  • 2013-07-08
  • 2011-12-19
  • 2020-04-04
  • 2017-08-19
  • 2018-07-23
  • 2016-05-10
相关资源
最近更新 更多