IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

[Débutant] Problème de Context.lookup [EJB3]


Sujet :

Java EE

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut [Débutant] Problème de Context.lookup
    Bonjour,
    Je suis débutant en EJB et j'essaye de créer ma première application ejb 3.0 avec NetBeans 5.5
    mais je rencontre des problèmes
    voici la liste des erreurs que mon application affiche
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    javax.naming.NameNotFoundException: ejb.NewEntityFacadeLocal not found
            at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:203)
            at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:175)
            at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
            at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
            at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
            at javax.naming.InitialContext.lookup(InitialContext.java:392)
            at web.ListNews.lookupNewEntityFacade(ListNews.java:22)
            at web.ListNews.processRequest(ListNews.java:48)
            at web.ListNews.doGet(ListNews.java:72)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
            at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
    StandardWrapperValve[ListNews]: Servlet.service() for servlet ListNews threw exception
    java.lang.RuntimeException: javax.naming.NameNotFoundException: ejb.NewEntityFacadeLocal not found
            at web.ListNews.lookupNewEntityFacade(ListNews.java:27)
            at web.ListNews.processRequest(ListNews.java:48)
            at web.ListNews.doGet(ListNews.java:72)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
            at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
            at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
            at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
            at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
            at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
    Caused by: javax.naming.NameNotFoundException: ejb.NewEntityFacadeLocal not found
            at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:203)
            at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:175)
            at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
            at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
            at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
            at javax.naming.InitialContext.lookup(InitialContext.java:392)
            at web.ListNews.lookupNewEntityFacade(ListNews.java:22)
            ... 28 more
    et voici les codes sources de mon application


    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
     
     
     
    package ejb;
     
    import java.io.Serializable;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
     
    /**
     * Entity class NewEntity
     */
    @Entity
    public class NewEntity implements Serializable {
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
        private String title;
        private String body;
     
        /** Creates a new instance of NewEntity */
        public NewEntity() {
        }
     
        /**
         * Gets the id of this NewEntity.
         * @return the id
         */
        public Long getId() {
            return this.id;
        }
     
        /**
         * Sets the id of this NewEntity to the specified value.
         * @param id the new id
         */
        public void setId(Long id) {
            this.id = id;
        }
     
        public String gettitle() {
            return this.title;
        }
     
        public String getbody() {
            return this.body;
        }
     
        public void setTitle(String title) {
            this.title=title;
        }
     
        public void setBody(String body) {
            this.body= body;
        }
     
    }

    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
     
     
    package ejb;
     
    import java.util.List;
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
     
    @Stateless
    public class NewEntityFacade implements NewEntityFacadeLocal {
     
        @PersistenceContext
        private EntityManager em;
     
        /** Creates a new instance of NewEntityFacade */
        public NewEntityFacade() {
        }
     
        public void create(NewEntity newEntity) {
            em.persist(newEntity);
        }
     
        public void edit(NewEntity newEntity) {
            em.merge(newEntity);
        }
     
        public void destroy(NewEntity newEntity) {
            em.merge(newEntity);
            em.remove(newEntity);
        }
     
        public NewEntity find(Object pk) {
            return (NewEntity) em.find(NewEntity.class, pk);
        }
     
        public List findAll() {
            return em.createQuery("select object(o) from NewEntity as o").getResultList();
        }
     
    }
    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
     
     
    package ejb;
     
    import java.util.List;
    import javax.ejb.Local;
    @Local
    public interface NewEntityFacadeLocal {
        void create(NewEntity newEntity);
     
        void edit(NewEntity newEntity);
     
        void destroy(NewEntity newEntity);
     
        NewEntity find(Object pk);
     
        List findAll();
     
    }

    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
     
    package ejb;
     
    import javax.annotation.Resource;
    import javax.ejb.ActivationConfigProperty;
    import javax.ejb.MessageDriven;
    import javax.ejb.MessageDrivenContext;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageListener;
    import javax.jms.ObjectMessage;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
     
    /**
     * Entity class NewMessage
     
     */
    @MessageDriven(mappedName = "jms/NewMessage", activationConfig =  {
            @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
            @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
     
     
     
        })
    public class NewMessage implements MessageListener {
     
        @PersistenceContext
        private EntityManager em;
     
        /** Creates a new instance of NewMessage */
        @Resource
         private MessageDrivenContext mdc;
     
        public NewMessage() {
        }
     
        public void onMessage(Message message) {
            ObjectMessage msg = null;
        try {
            if (message instanceof ObjectMessage) {
                msg = (ObjectMessage) message;
                NewEntity e = (NewEntity) msg.getObject();
                save(e);
            }
        } catch (JMSException e) {
            e.printStackTrace();
            mdc.setRollbackOnly();
        } catch (Throwable te) {
            te.printStackTrace();
        }
     
        }
     
        public void save(Object object) {
            // TODO:
            em.persist(object);
        }
     
    }

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
     
    package web;
     
    import ejb.NewEntity;
    import ejb.NewEntityFacadeLocal;
    import java.io.*;
    import java.util.Iterator;
    import java.util.List;
    import javax.ejb.EJB;
     
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    public class ListNews extends HttpServlet {
     
        private NewEntityFacadeLocal lookupNewEntityFacade() {
        try {
            javax.naming.Context c = new javax.naming.InitialContext();
            return (NewEntityFacadeLocal) c.lookup((NewEntityFacadeLocal.class.getName()));
    //j'ai essayé NewsApp/ejb/NewEntityFacadeLocal mais ça ne marche pas aussi
        }
        catch(javax.naming.NamingException ne) {
            java.util.logging.Logger.getLogger(getClass().
                        getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
            throw new RuntimeException(ne);
        }
    }
     
     
        /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
         * @param request servlet request
         * @param response servlet response
         */
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            // TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ListNews</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet ListNews at " + request.getContextPath () + "</h1>");
            //NewEntityFacadeLocal newEntityFacade = (NewEntityFacadeLocal) lookupNewEntityFacade();
            NewEntityFacadeLocal newEntityFacade = (NewEntityFacadeLocal) lookupNewEntityFacade();
     
            List news = newEntityFacade.findAll();
            for (Iterator it = news.iterator(); it.hasNext();) {
            NewEntity elem = (NewEntity) it.next();
            out.println(" <b>"+elem.gettitle()+" </b><br />");
            out.println(elem.getbody()+"<br /> ");
    }
    out.println("<a href='PostMessage'>Add new message</a>");
     
     
            out.println("</body>");
            out.println("</html>");
     
            out.close();
        }
     
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        /** Handles the HTTP <code>GET</code> method.
         * @param request servlet request
         * @param response servlet response
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
        /** Handles the HTTP <code>POST</code> method.
         * @param request servlet request
         * @param response servlet response
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
        /** Returns a short description of the servlet.
         */
        public String getServletInfo() {
            return "Short description";
        }
        // </editor-fold>
    }

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
     
    package web;
     
    import ejb.NewEntity;
    import java.io.*;
     
    import javax.jms.JMSException;
    import javax.jms.MessageProducer;
    import javax.jms.ObjectMessage;
    import javax.jms.QueueConnection;
    import javax.jms.QueueConnectionFactory;
    import javax.jms.QueueSession;
    import javax.jms.Queue;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
    import javax.servlet.*;
    import javax.servlet.http.*;
     
     
    public class PostMessage extends HttpServlet {
     
        /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
         * @param request servlet request
         * @param response servlet response
         */
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            String title=request.getParameter("title");
    String body=request.getParameter("body");
     
    if ((title!=null) && (body!=null)) {
     
        Queue queue = null;
        QueueConnection connection = null;
        QueueSession session = null;
        MessageProducer messageProducer = null;
        try {
     
            InitialContext ctx = new InitialContext();
            queue = (Queue) ctx.lookup("queue/mdb");
            QueueConnectionFactory factory =
                    (QueueConnectionFactory) ctx.lookup("ConnectionFactory");
            connection = factory.createQueueConnection();
            session = connection.createQueueSession(false,
                    QueueSession.AUTO_ACKNOWLEDGE);
            messageProducer = session.createProducer(queue);
     
            ObjectMessage message = session.createObjectMessage();
            // here we create a NewsEntity, that will be sent in JMS message
            NewEntity e = new NewEntity();
            e.setTitle(title);
            e.setBody(body);
     
            message.setObject(e);
            messageProducer.send(message);
            messageProducer.close();
            connection.close();
            response.sendRedirect("ListNews");
     
        } catch (JMSException ex) {
            ex.printStackTrace();
        } catch (NamingException ex) {
            ex.printStackTrace();
        }
     
    }
     
            PrintWriter out = response.getWriter();
            // TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet PostMessage</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet PostMessage at " + request.getContextPath () + "</h1>");
            out.println("<form>");
    out.println("Title: <input type='text' name='title'><br/>");
    out.println("Message: <textarea name='body'></textarea><br/>");
    out.println("<input type='submit'><br/>");
    out.println("</form>");
     
            out.println("</body>");
            out.println("</html>");
     
            out.close();
        }
     
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        /** Handles the HTTP <code>GET</code> method.
         * @param request servlet request
         * @param response servlet response
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
        /** Handles the HTTP <code>POST</code> method.
         * @param request servlet request
         * @param response servlet response
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
     
        /** Returns a short description of the servlet.
         */
        public String getServletInfo() {
            return "Short description";
        }
        // </editor-fold>
    }
    Merci pour votre aide

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    salut

    essayé de mettre ds le le fichier jboss.xml <jndi-name>ejb/jndiname</jndi-name>
    au lieu <jndi-name>jndiname</jndi-name>
    et dans linstruction ctx.lookup("ejb/jndiname");
    bonne chance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème avec InitialContext.lookup()
    Par Faiche dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 20/12/2008, 20h36
  2. [Débutant] problème nextFrame (contexte?)
    Par Lethal dans le forum Flash
    Réponses: 1
    Dernier message: 05/06/2006, 21h58
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo