2012-06-18 18 views
15

Tôi không thể lấy tệp kiên trì này đúng ... Tôi không tìm thấy bất kỳ thông tin nào khác trong sách mà tôi sử dụng làm hướng dẫn. Tôi đang sử dụng cơ sở dữ liệu MySQL.Persistence.xml không được định cấu hình chính xác

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

EDIT

NGHIÊM TRỌNG: DPL8015: Invalid Triển khai Phần mô tả trong triển khai tập tin mô tả META-INF/persistence.xml trong kho lưu trữ [EJBModule_jar]. Dòng 6 Cột 15 - cvc-complex-type.2.4.a: Tìm thấy nội dung không hợp lệ bắt đầu bằng yếu tố 'nhà cung cấp'. Một trong '{"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} 'được mong đợi.

SEVERE: DPL8005: Lỗi phân tích cú pháp mô tả triển khai: cvc-complex-type.2.4.a: Tìm thấy nội dung không hợp lệ bắt đầu bằng phần tử 'provider'. Một trong '{"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} 'được mong đợi.

NGHIÊM TRỌNG: ngoại lệ khi triển khai các ứng dụng [VaadinTestApp]

NGHIÊM TRỌNG: org.xml.sax.SAXParseException: cvc-phức-type.2.4.a: Nội dung không hợp lệ đã được tìm thấy bắt đầu với yếu tố 'nhà cung cấp'. Một trong '{"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} 'được mong đợi. java.io.IOException: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Tìm thấy nội dung không hợp lệ bắt đầu bằng phần tử 'provider'. Một trong '{"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} 'được mong đợi.

+0

Và thông báo lỗi nói gì? Thông báo lỗi được dự định sẽ được đọc. Tôi chắc chắn nó không chỉ nói "Có gì đó sai". –

Trả lời

38

thứ tự của các yếu tố bên trong <persistence-unit> là quan trọng, <jta-data-source> nên đi sau <provider>:

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

Ok, điều đó dường như cải thiện mọi thứ. Bắt lỗi khác ngay bây giờ: Gây ra bởi: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn cho cú pháp đúng để sử dụng gần 'giá trị IDENTITY_VAL_LOCAL()' tại dòng 1 – mmvie

+0

Lưu ý rằng 'eclipselink.target-database' là' DERBY', nhưng kết nối các điểm URL với MySQL. – axtavt

+0

Tìm thấy điều đó thật lạ lẫm, nhưng tôi không thể tìm thấy bất cứ điều gì làm thế nào để trỏ nó vào MySQL. Bạn có thể chỉ tôi đường? – mmvie

6

Như the XSD nói, yếu tố <provider> phải đến trước phần tử <jta-data-source>.

+0

Điều gì xác định nếu các phần tử phải theo thứ tự hay không là: 'xsd: sequence' (thứ tự xác định) ' xsd: all' (no order) – FiruzzZ