2012-06-18 9 views
15

No puedo obtener este archivo de persistencia correcto ... No encuentro más información en el libro que utilizo como guía. Estoy usando una base de datos MySQL.Persistence.xml no configurado correctamente

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

EDITAR

GRAVES: DPL8015: no válidos los descriptores de implementación en la implementación del archivo descriptor META-INF/persistence.xml en el archivo [EJBModule_jar]. Line 6 Column 15 - cvc-complex-type.2.4.a: Se encontró contenido no válido comenzando por el elemento 'provider'. Uno de '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode," http://java.sun.com/xml/ns/persistence":validation-mode, Se espera "http://java.sun.com/xml/ns/persistence":properties} '.

SEVERE: DPL8005: Fallo de análisis del descriptor de implementación: cvc-complex-type.2.4.a: Se encontró contenido no válido comenzando por el elemento 'provider'. Uno de '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode," http://java.sun.com/xml/ns/persistence":validation-mode, Se espera "http://java.sun.com/xml/ns/persistence":properties} '.

GRAVES: Excepción mientras que el despliegue de la aplicación [VaadinTestApp]

grave: org.xml.sax.SAXParseException: CVC-complejo-type.2.4.a: se encontró contenido no válido a partir de elemento 'proveedor'. Uno de '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode," http://java.sun.com/xml/ns/persistence":validation-mode, Se espera "http://java.sun.com/xml/ns/persistence":properties} '. java.io.IOException: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Se encontró contenido no válido comenzando por el elemento 'provider'. Uno de '{"http://java.sun.com/xml/ns/persistence":shared-cache-mode," http://java.sun.com/xml/ns/persistence":validation-mode, Se espera "http://java.sun.com/xml/ns/persistence":properties} '.

+0

¿Y qué dice el mensaje de error? Los mensajes de error están destinados a ser leídos. Estoy seguro de que no solo dice "Algo está mal". –

Respuesta

38

Orden de los elementos en el interior <persistence-unit> es importante, <jta-data-source> debe ir después <provider>:

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

Ok, eso parece mejorar las cosas. Obteniendo otro error ahora: Causado por: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Tiene un error en su sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de 'values ​​IDENTITY_VAL_LOCAL()' en la línea 1 – mmvie

+0

Tenga en cuenta que 'eclipselink.target-database' es' DERBY', pero la conexión URL apunta a MySQL. – axtavt

+0

Encontrando eso extraño también, pero no puedo encontrar nada de cómo apuntarlo a MySQL. ¿Me puede mostrar el camino? – mmvie

6

como dice the XSD, el elemento <provider> debe llegar antes de que el elemento de <jta-data-source>.

+0

Lo que determina si los elementos deben estar en orden o no es: 'xsd: sequence' (orden determinada) ' xsd: all' (sin pedido) – FiruzzZ

Cuestiones relacionadas