Bonjour,
voila je cherche à tester une class @Stateless.

voici ma class de Test.java
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
import com.jmd.test.domaine.ejb.PersonneFacade;
import com.jmd.test.domaine.entity.Personne;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebServlet(name = "Test")
public class Test extends HttpServlet{
 
    @EJB
    PersonneFacade pF;
 
    @Override
    public void service( HttpServletRequest request, HttpServletResponse response )
        throws ServletException, IOException {
 
        Personne p = new Personne();
        p.setNom("Nom");
        p.setPrenom("Prenom");
        this.pF.create(p);
 
        PrintWriter out = response.getWriter();
 
        out.println( "<html><body>" );
        out.println( "<h1>Hello depuis une servlet</h1>" );
        List<Personne> pList = this.pF.findAll();
        Iterator<Personne> i = pList.iterator();
        while(i.hasNext()){
            out.println(i.next()+"<br>");
        }
        out.println( "</body></html>" );
 
 
    }
}
ma PersonneFacade.class

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
import com.jmd.test.domaine.entity.Personne;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
 
@Stateless
public class PersonneFacade implements PersonneFacadeLocal, PersonneFacadeRemote {
    @PersistenceContext
    private EntityManager em;
 
    @Override
    public void create(Personne personne) {
        em.persist(personne);
    }
 
    @Override
    public void edit(Personne personne) {
        em.merge(personne);
    }
 
    @Override
    public void remove(Personne personne) {
        em.remove(em.merge(personne));
    }
 
    @Override
    public Personne find(Object id) {
        return em.find(com.jmd.test.domaine.entity.Personne.class, id);
    }
 
    @Override
    public List<Personne> findAll() {
        return em.createQuery("select object(o) from Personne as o").getResultList();
    }
}
et voici les erreur obtenu quand j'essaye d'aller sur ma page de test:
http://localhost:8080/JavaEE-war/Test
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
HTTP Status 500 -

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: PWC1392: Error instantiating servlet class test.Test

root cause

com.sun.enterprise.container.common.spi.util.InjectionException: Erreur lors de la création de l'objet géré pour la classe : class test.Test

root cause

com.sun.enterprise.container.common.spi.util.InjectionException: Exception lors de la tentative d'injection de l'élément Remote ejb-ref name=test.Test/pF,Remote 3.x interface =com.jmd.test.domaine.ejb.PersonneFacade,ejb-link=null,lookup=,mappedName=,jndi-name=com.jmd.test.domaine.ejb.PersonneFacade,refType=Session dans class test.Test : Lookup failed for 'java:comp/env/test.Test/pF' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming}

root cause

javax.naming.NamingException: Lookup failed for 'java:comp/env/test.Test/pF' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NamingException: Exception resolving Ejb for 'Remote ejb-ref name=test.Test/pF,Remote 3.x interface =com.jmd.test.domaine.ejb.PersonneFacade,ejb-link=null,lookup=,mappedName=,jndi-name=com.jmd.test.domaine.ejb.PersonneFacade,refType=Session' .  Actual (possibly internal) Remote JNDI name used for lookup is 'com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade' [Root exception is javax.naming.NamingException: Lookup failed for 'com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade not found]]]

root cause

javax.naming.NamingException: Exception resolving Ejb for 'Remote ejb-ref name=test.Test/pF,Remote 3.x interface =com.jmd.test.domaine.ejb.PersonneFacade,ejb-link=null,lookup=,mappedName=,jndi-name=com.jmd.test.domaine.ejb.PersonneFacade,refType=Session' .  Actual (possibly internal) Remote JNDI name used for lookup is 'com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade' [Root exception is javax.naming.NamingException: Lookup failed for 'com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade not found]]

root cause

javax.naming.NamingException: Lookup failed for 'com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade not found]

root cause

javax.naming.NameNotFoundException: com.jmd.test.domaine.ejb.PersonneFacade#com.jmd.test.domaine.ejb.PersonneFacade not found

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.2 logs.
GlassFish Server Open Source Edition 3.1.2
Je n'ai pas tout mis pour évité de polluer.
J'ai fais le projet avec NetBeans
il est divisé en 3 le ejb, le war et l'application
j'ai essayé de tout recompiler construire et déployer sur l'application
le serveur me sort environ les même lot mais en plus long.

Je sais que le problème se situe dans ma class test.

Merci de votre aide et de m'avoir lu.