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;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
**
*
* @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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8" ?>
- <persistence version="1.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_1_0.xsd">
- <persistence-unit name="OACA-ejbPU" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>voldb</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
- <properties>
<property name="toplink.ddl-generation" value="drop-and-create-tables" />
</properties>
</persistence-unit>
</persistence>
mais il ya une erreur d'execution de la classe VolFacade voici le code de l'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
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