2012-06-18 20 views
15

Non riesco a ottenere questo file di persistenza corretto ... Non trovo altre informazioni nel libro che uso come guida. Sto usando un database MySQL.Persistence.xml non configurato correttamente

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

GRAVI: DPL8015: non validi distribuzione descrittori di distribuzione descrittore di file META-INF/persistence.xml in archivio [EJBModule_jar]. Riga 6 Colonna 15 - cvc-complex-type.2.4.a: Il contenuto non valido è stato trovato a partire dall'elemento 'provider'. Uno di "{" 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}" è previsto.

SEVERE: DPL8005: errore di analisi descrittore distribuzione: cvc-complex-type.2.4.a: è stato trovato contenuto non valido a partire dall'elemento 'provider'. Uno di "{" 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}" è previsto.

GRAVI: eccezione durante la distribuzione dell'app [VaadinTestApp]

GRAVI: org.xml.sax.SAXParseException: CVC-complesso-type.2.4.a: il contenuto non valido è stato trovato a partire da elemento di 'provider'. Uno di "{" 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}" è previsto. java.io.IOException: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: È stato trovato contenuto non valido a partire dall'elemento 'provider'. Uno di "{" 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}" è previsto.

+0

E cosa dice il messaggio di errore? I messaggi di errore devono essere letti. Sono sicuro che non dice semplicemente "Qualcosa non va". –

risposta

38

Ordine degli elementi all'interno <persistence-unit> è importante, <jta-data-source> dovrebbe andare dopo <provider>:

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

Ok, sembra migliorare le cose. Ottenere un altro errore ora: causato da: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: si è verificato un errore nella sintassi SQL; controlla il manuale corrispondente alla versione del tuo server MySQL per la sintassi corretta da utilizzare vicino ai "valori IDENTITY_VAL_LOCAL()" alla riga 1 – mmvie

+0

Nota che 'eclipselink.target-database' è' DERBY', ma l'URL di connessione punta a MySQL. – axtavt

+0

Trovare anche quello strano, ma non riesco a trovare nulla su come indicarlo a MySQL. Puoi mostrarmi la via? – mmvie

6

Come the XSD dice, l'elemento <provider> deve venire prima dell'elemento <jta-data-source>.

+0

Ciò che determina se gli elementi devono essere in ordine o meno è: 'xsd: sequence' (ordine determinato) ' xsd: all' (nessun ordine) – FiruzzZ

Problemi correlati