javax.la persistance.PersistenceException: Pas de fournisseur de Persistance pour l'EntityManager nommé sample
Je suis de l'utilisation d'Hibernate Entity Manager. Il se plaint qu'il ne peut trouver de fournisseur de persistance, mais encore les journaux dans les journaux :
TRACE 2011-02-21 22:17:52,843 [main](Ejb3Configuration.java:321) org.hibernate.ejb.Ejb3Configuration - PersistenceMetadata(version=2.0) [
name: sample
jtaDataSource: null
nonJtaDataSource: null
transactionType: RESOURCE_LOCAL
provider: org.hibernate.ejb.HibernatePeristence
useQuotedIdentifiers: false
classes[
]
packages[
]
mappingFiles[
]
jarFiles[
]
hbmfiles: 0
properties[
hibernate.connection.username: scott
hibernate.connection.password: tiger
hibernate.dialect: org.hibernate.dialect.OracleDialect
hibernate.show_sql: true
hibernate.connection.url: jdbc:oracle:thin:@localhost:1521:krsna
hibernate.archive.autodetection: class, hbm
hibernate.connection.driver_class: oracle.jdbc.driver.OracleDriver
]]
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named sample
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at EMPersistDemo2.main(EMPersistDemo2.java:26)
Il est évident qu'il le trouve, journaux ...mais jette toujours l'exception.
Ai-je raté quelque chose ?
Je suis à l'aide de maven et j'ai placé persistence.xml dans src/main/resources/META-INF.
Son contenu sont :
<!-- persistence.xml -->
<persistence ...>
<persistence-unit name="sample">
<provider>org.hibernate.ejb.HibernatePeristence</provider>
<!-- Scan for annotated classes and Hibernate mapping XML files -->
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:krsna"/>
<property name="hibernate.connection.username" value="scott"/>
<property name="hibernate.connection.password" value="tiger"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
org.mise en veille prolongée.Ejb3Configuration est en mesure de le trouver javax.persitence.La persistance n'est pas en mesure de le trouver:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("sample");
- Comment êtes-vous en cours d'exécution de votre code? Il se pourrait que le chemin de la META-INF n'est pas dans votre classpath
- Je suis en cours d'exécution de cette comme une simple main() du programme. META-INF/persistence.xml se trouve dans src/main/resources. Qui est compilé dans D:/arun/mavenprojects/hibernateHawa/target/classes/META-INF/persistence.xml. Et quand j'ai imprimé CLASSPATH, j'ai vu D:/arun/mavenprojects/hibernateHawa/target/ comme la première entrée. Alors, évidemment, META-INF/persistence.xml est dans le CLASSPATH. Je ne sais pas d'où Ejb3Configurer est venu dans les journaux et dit qu'il pourrait en mesure de le trouver. Mais ma ligne de code de Persistance.createEntity Manager("sample")...throws Exception.
Vous devez vous connecter pour publier un commentaire.
J'ai également fait face à un même problème mais j'ai une solution : manquant META-INF/services/javax.la persistance.le spi.PersistenceProvider fichier. pour la mise en veille prolongée, il est situé dans hibernate-entitymanager-XXX.jar, si, si hibernate-entitymanager-XXX.jar n'est pas dans votre classpath, vous aurez obtenu cette erreur trop.
J'ai trouvé la réponse à ma question sur java coderanch.
Il y a une erreur dans mon nom de mon fournisseur de persistance dans
persistence.xml
:J'ai renommé
org.hibernate.ejb.HibernatePeristence
àet il a commencé à travailler.
Je vous poste ma réponse, de sorte que ce sera utile à d'autres.
sent comme hibernate fichiers jar ne sont pas dans le classpath depuis le message d'erreur dit "fournisseur de persistance n'est pas trouvé"