2012-06-18 4 views
15

이 지속성 파일을 올바르게 가져올 수 없습니다 ... 가이드로 사용하는 책에서 더 이상 정보를 찾지 못했습니다. MySQL 데이터베이스를 사용하고 있습니다.Persistence.xml이 올바르게 구성되지 않았습니다.

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

편집

SEVERE : DPL8015 : [EJBModule_jar] 아카이브에 배포 설명자 파일의 META-INF/persistence.xml을 잘못된 배포 설명자. Line 6 Column 15 - cvc-complex-type.2.4.a : 'provider'요소로 시작하는 잘못된 콘텐츠가 발견되었습니다. '{ "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 : 'provider'요소로 시작하는 잘못된 콘텐츠가 발견되었습니다. '{ "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} '가 필요합니다.

SEVERE : 예외 앱 [VaadinTestApp]

심각 배포하면서 : org.xml.sax.SAXParseException : CVC-착체 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 : 요소 'provider'로 시작하는 잘못된 내용이 발견되었습니다. '{ "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} '가 필요합니다. <persistence-unit> 내부 요소의

+0

오류 메시지는 무엇을 말합니까? 오류 메시지는 읽어야합니다. 나는 그것이 "뭔가 잘못되었다"고 말하는 것이 아니라고 확신합니다. –

답변

38

순서가 중요, <jta-data-source><provider> 후 어디로 이동해야합니다 the XSD가 말한대로

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

좋아, 그게 사물을 향상시키는 것 같다. 지금 다른 오류 얻기 : 발생 원인 : com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : SQL 구문에 오류가 있습니다. 올바른 구문이 MySQL 서버 버전에 해당하는지 확인하십시오. 1 행에서 'IDENTITY_VAL_LOCAL()'값을 사용하십시오. – mmvie

+0

'eclipselink.target-database'는'DERBY'이지만 연결 URL은 MySQL을 가리 킵니다. – axtavt

+0

이상한 점도 발견했지만 MySQL을 가리키는 방법을 찾을 수 없습니다. 저에게 길을 보여줄 수 있습니까? – mmvie

6

에서, <provider> 요소가 <jta-data-source> 요소 앞에 와야합니다.

+0

요소가 순서대로 있어야하는지 여부는 다음과 같습니다. 'xsd : sequence' (확정 된 순서) 'xsd : all' (순서 없음) – FiruzzZ

관련 문제