2016-11-20 2 views
0

Exécution d'une application autonome Java SE JPA lance l'exception:JPA avec Java SE: javax.persistence.PersistenceException: Aucun fournisseur de persistance pour EntityManager

javax.persistence.PersistenceException: No Persistence provider for EntityManager named test 

J'ai trouvé plusieurs postes similaires, mais je pense qu'aucun d'entre eux applique à mon cas avec EclipseLink, Java sE et aucun emballage dans des fichiers déployables et donc pas WEB-INF etc.

Le /src/META-INF/persistence.xml est:

<persistence> 
    <persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <class>SomeEntity</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> 
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/somedbname"/> 
      <property name="javax.persistence.jdbc.user" value="foo"/> 
      <property name="javax.persistence.jdbc.password" value="bar"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

Les pots suivants sont sur le chemin de construction:

  • org.eclipse.persistence.jpa-2.6.4.jar
  • EclipseLink-2.6.4.jar
  • javax.persistence-2.1.1. jar
  • postgresql-9.4.1212.jar

Répondre

0

Vous devez ajouter le pot de EclipseLink à votre ClassPath est de vérifier qu'il est déjà là ou pas:

System.out.println(System.getProperty("java.class.path")); 
+0

oui, EclipseLink-2.6.4.jar est le classpath – JCvanDamme

0

je dû fournir l'espace de persistance dans persistence.xml avec l'attribut xmlns

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">