Bonsoir j'essaye en vain d'utiliser un EJB a partir de ma servlet. Voici mes fichiers sources:
coté ejb :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package com.et; import java.util.List; import javax.ejb.Remote; @Remote public interface GestionDeStock { public void ajouter(Produits produit); public Produits rechercherProduit(String id); public List<Produits> listerTousLesProduits(); }
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 package com.et; import java.util.List; import javax.ejb.Local; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class GestionDeStockBean implements GestionDeStock { @PersistenceContext EntityManager em; public void ajouter(Produits produit) { em.persist(produit); } public Produits rechercherProduit(String id) { return em.find(Produits.class, id); } public List<Produits> listerTousLesProduits() { return em.createQuery("SELECT p FROM Produit p ORDER BY p.quantiteEnStock").getResultList(); } }Partie du code de la servlet :
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 package com.et; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class Produits implements Serializable { @Id private String id; private String libelle; private int quantiteEnStock; public Produits() { super(); } public Produits(String id) { this.id = id; } public Produits(String id, String libelle, int quantiteEnStock) { this.id = id; this.libelle = libelle; this.quantiteEnStock = quantiteEnStock; } public String getLibelle() { return libelle; } public void setLibelle(String libelle) { this.libelle = libelle; } public int getQuantiteEnStock() { return quantiteEnStock; } public void setQuantiteEnStock(int quantiteEnStock) { this.quantiteEnStock = quantiteEnStock; } public String getId() { return id; } public String toString() { return "Produit n°" + id + " - " + libelle + " - quantité disponible : " + quantiteEnStock; } }
Voici la stacktrace
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 try { Context context = new InitialContext(); GestionDeStock stock; stock = (GestionDeStock)context.lookup("projetGPS/GestionDeStockBean/remote"); stock.ajouter(new Produits("000", "45297",18)); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Merci d'avance de votre aide. Si j'ai oublié des éléments hesitez pas à me le demander. Je debute dans l'univers jee EJB ...
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 javax.ejb.EJBException: java.lang.IllegalArgumentException: Wrong target. class com.et.GestionDeStockBean for public void com.et.GestionDeStockBean.ajouter(com.et.Produits) org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69) org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83) org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:263) org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:58) org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102) $Proxy307.ajouter(Unknown Source) com.projet.servlet.servletGestionSession.doCreerCompte(servletGestionSession.java:134) com.projet.servlet.servletGestionSession.doGet(servletGestionSession.java:53) com.projet.servlet.servletGestionSession.doPost(servletGestionSession.java:76) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) javax.servlet.http.HttpServlet.service(HttpServlet.java:810) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)![]()
Partager