Bonjour.
Je suis entrain de développer un projet en utilisant struts2 et ejb 3 avec jpa pour gérer la persistence en utilisant l'implémentation hibernate,L'EJB sera deployer sur jboss5 et l'application cliente(struts2)sera deploye sur tomcat.L'erreur que j'ai est quand je veux dans mon ejb exécute une requête je reçois l'erreur affiché en haut.Sachant que je fais absolument pas appel a la méthode setAutoCommit() voici ma dao:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
package dao;
 
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
 
import org.hibernate.Session;
import org.hibernate.Transaction;
 
 
import java.sql.*;
 
 
import domaine.Produit;
public class GestionDeStockBean implements GestionDeStock {
 
   EntityManager em;
 
   public GestionDeStockBean(){
	   EntityManagerFactory emf = Persistence.createEntityManagerFactory("hibernateMysqlDefaultDS");
	   em=emf.createEntityManager();
   }
 
   public void ajouter(Produit produit) {
      em.persist(produit);
   }
 
   public Produit rechercherProduit(String id) {
      return em.find(Produit.class, id);
   }
 
   @SuppressWarnings("unchecked")
   public List<Produit> listerTousLesProduits() {
 
	   if(em==null)System.out.println("probleme");else System.out.println("okkkkkkk");
	   System.out.println("ici1");
	   System.out.println(em.toString());
	   System.out.println("ici2");
	   /*//Produit p1 = em.find(Produit.class, "001");
	   //System.out.println(p1.getId());
	   //return em.createQuery("FROM Produit").getResultList();*/
	   Produit p = new Produit();
	   //p.setLibelle("jo");
	   //p.setQuantiteEnStock(11);
	   List<Produit>lst=new ArrayList<Produit>();
	   //lst.add(p);
	   //System.out.println(em.isOpen());
	   //this.ajouter(p);
	   //EntityTransaction tx = em.getTransaction();
	   System.out.println("avant");
	   //lst = em.createQuery("SELECT p FROM Produit p ORDER BY p.quantiteEnStock").getResultList();
	   //tx.commit();
	   return em.createQuery("SELECT p FROM Produit p ORDER BY p.quantiteEnStock").getResultList();
	  // return lst;
   }
 
}
c'est au niveau de la méthode listerTousLesProduits que j'ai mon erreur.
et voici aussi le 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
 
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
 
 
    <persistence-unit name="hibernateMysqlDefaultDS">
	       <jta-data-source>java:/DefaultDS</jta-data-source>
	       <properties>
	         <property name="hibernate.hbm2ddl.auto" value="create"/>
	       </properties>
    </persistence-unit>
 
 
</persistence>
Comme vous le remarquez j'utilise jta c'est peut-être de la que vient le problème.