2012-06-18 4 views
15

Ich bin nicht in der Lage, diese Persistenzdatei korrekt zu finden ... Ich finde keine weiteren Informationen in dem Buch, das ich als Leitfaden benutze. Ich benutze eine MySQL-Datenbank.Persistence.xml nicht richtig konfiguriert

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

SCHWERE: DPL8015: Ungültige Deployment-Deskriptoren in Deployment Descriptor Datei META-INF/persistence.xml im Archiv [EJBModule_jar]. Zeile 6 Spalte 15 - cvc-complex-type.2.4.a: Ungültiger Inhalt wurde gefunden, beginnend mit dem Element 'provider'. Einer von {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} wird erwartet.

SEVERE: DPL8005: Fehler bei der Analyse des Deployment-Deskriptors: cvc-complex-type.2.4.a: Ungültiger Inhalt wurde gefunden, beginnend mit dem Element 'provider'. Einer von {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} wird erwartet.

SCHWERE: Ausnahme beim Entfalten des app [VaadinTestApp]

SCHWERE: org.xml.sax.SAXParseException: CVC-Komplex-type.2.4.a: ungültiger Inhalt gefunden wurde, beginnend mit Elemente 'Provider'. Einer von {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} wird erwartet. java.io.IOException: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Ungültiger Inhalt wurde gefunden, beginnend mit dem Element 'provider'. Einer von {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} wird erwartet.

+0

Und was sagt die Fehlermeldung? Fehlermeldungen sollen gelesen werden. Ich bin mir sicher, es sagt nicht nur "Irgendwas stimmt nicht". –

Antwort

38

Die Reihenfolge der Elemente innerhalb <persistence-unit> ist wichtig, sollte <jta-data-source> gehen nach <provider>:

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

Ok, das scheint Dinge zu verbessern. Einen weiteren Fehler jetzt erhalten: verursacht durch: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Server-Version entspricht, für die richtige Syntax in der Nähe von 'Werten IDENTITY_VAL_LOCAL()' in Zeile 1 – mmvie

+0

Beachten Sie, dass 'eclipselink.target-database'' DERBY' ist, die Verbindungs-URL jedoch auf MySQL zeigt. – axtavt

+0

Auch das finde ich merkwürdig, aber ich finde nichts, wie ich es auf MySQL verweisen könnte. Kannst du mir den Weg zeigen? – mmvie

6

Wie the XSD sagt, das <provider> Element vor dem <jta-data-source> Element kommen müssen.

+0

Was bestimmt wird, wenn Elemente in Ordnung sein sollen oder nicht: 'xsd: sequence' (bestimmte Reihenfolge) ' xsd: all' (keine Reihenfolge) – FiruzzZ