Persistence provider

seeif Messages postés 22 Date d'inscription jeudi 9 juillet 2009 Statut Membre Dernière intervention 19 août 2009 - 15 juil. 2009 à 21:30
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 16 juil. 2009 à 07:58
salut,
je suis entrain de développer une application jee (ejb3) pour inserer quelque données dans une base de données
voici la classe VolFacade responsable d'insertion de données et qui utilise l'entity bean Vol

package ejb;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import javax.transaction.UserTransaction;

/**
*
* @author Administrateur
*/
@Stateless
public class VolFacade implements VolFacadeLocal {
@Resource
private UserTransaction utx = null;
@PersistenceUnit(unitName = "OACA-ejbPU")
private EntityManagerFactory emf = null;

private static final String JPA_UNIT_NAME = "OACA-ejbPU";
private EntityManager entityManager=null;
public EntityManager getEntityManager() {
if (entityManager == null) {
entityManager = Persistence.createEntityManagerFactory(JPA_UNIT_NAME).createEntityManager();
}
return entityManager;
}

public void create(Vol vol) throws Exception {

try {

entityManager = getEntityManager();

entityManager.persist(vol);

utx.commit();
} finally {
if (entityManager != null) {
entityManager.close();
}
}
}
public static void main(String[] args){
try {
Vol voll = new Vol();
voll.setDepart("dddddd");
voll.setDestination("fgfdd");
VolFacade vf = new VolFacade();
vf.create(voll);
} catch (Exception ex) {
Logger.getLogger(VolFacade.class.getName()).log(Level.SEVERE, null, ex);
}

}

}

sachant que j'ai crée une unité de persistence "OACA-ejbPU" dont le provider est toplink voici le fichier de configuration persistence.xml:


-
-
oracle.toplink.essentials.PersistenceProvider


voldb
false
-












mais il ya une erreur d'execution de la classe VolFacade voici le code de l'erreur:

run-main:
15 juil. 2009 20:27:44 ejb.VolFacade main
GRAVE: null
javax.persistence.PersistenceException: No resource files named META-INF/services/javax.persistence.spi.PersistenceProvider were found. Please make sure that the persistence provider jar file is in your classpath.
at javax.persistence.Persistence.findAllProviders(Persistence.java:167)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:103)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
at ejb.VolFacade.getEntityManager(VolFacade.java:33)
at ejb.VolFacade.create(VolFacade.java:42)
at ejb.VolFacade.main(VolFacade.java:59)
BUILD SUCCESSFUL (total time: 0 seconds)


quequ'un peut m'aider
merci d'avance

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 juil. 2009 à 07:58
Salut,

Il suffit de lire le message d'erreur :
No resource files named META-INF/services/javax.persistence.spi.PersistenceProvider were found.
Please make sure that the persistence provider jar file is in your classpath.

Il te manque une bibliothèque dans le classpath de ton application.
______________________________________
DarK Sidious
0
Rejoignez-nous