Bonjour,

Je suis actuellement en train de m'initier à J2EE.
Je m'appuie sur des exemples issus d'un livre (d'Antonio Goncalves) et j'essaye de créer mes propres EJB... histoire de m'y faire.

Je dispose d'un entity Bean servant à décrire une personne, elle-même enregistrée dans une bdd MySQL. Je me sers de l'interface locale du stateless Bean associé afin d'afficher simplement la liste des personnes dans une page JSP...

Je pense que c'est un problème avec JNDI mais je ne vois pas où...

Voici mon instanciation de l'interface locale, avec l'appel à la méthode "listPersonne" (directement dans le JSP) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Context initialContext = new InitialContext();
PersonneLocal personneLocal = (PersonneLocal) initialContext.lookup("testkev/stateless/Personne");      
List<Personne> personnes = personneLocal.listPersonnes();
Mon stateless Bean :
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
 
@SuppressWarnings(value = "unchecked")
@Stateless(name = "Personne", mappedName = "testkev/stateless/Personne")
public class PersonneBean implements PersonneLocal {
 
    @PersistenceContext(unitName = "essai3PU")
    private EntityManager em;
 
    public List<Personne> listPersonnes() {
 
        Query query;
        List<Personne> personnes;// = new ArrayList<Personne>();
 
        query = em.createQuery("SELECT p FROM Personne p");
        personnes = query.getResultList();        
 
        /*Personne test = new Personne();
        test.setId(10);
        test.setAge(48);
        test.setNom("Manson");
        test.setPrenom("Kevin");
        
        personnes.add(test);*/
 
        return personnes;
    }
}
Et la trace de mon erreur :
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
 
StandardWrapperValve[jsp]: PWC1406 : servlet.service() pour le servlet jsp a émis une exception.
javax.naming.NameNotFoundException
        at com.sun.enterprise.naming.TransientContext.resolveContext(TransientContext.java:268)
        at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:191)
        at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:74)
        at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:111)
        at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:409)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java from :79)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
        at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:382)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
J'ajoute que j'ai visualisé l'arbre JNDI avec cet appli : http://developers.sun.com/appserver/...ditree_ug.html

et que "testkev/stateless/Personne" n'y apparait pas.

Ai-je oublié quelque chose ?

-> Je déplace la discussion à un endroit peut-être plus approprié. -> passage en "résolu"