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;
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
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); } } }
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 <?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>
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
Partager