Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203

    web application con dati da db oracle

    Ciao a tutti,
    per motivi di lavoro è un bel po che non programmo ed ora il cliente dove mi trovo mi ha chiesto di fargli una piccola applicazione che prende i dati da un db oracle.
    nella mia applicazione ho creato gli entities, gli ejb, ed un ejb che comunica con lo strato della servlet.
    Sino a qua nessun problema.
    Il mio problema nasce al momento di stampare i dati della collection che dovrebbe ritornare dal db in una pagina jsp, riesco a forwardare correttamente la richiesta dalla index alla servlet e poi aprire una seconda pagina(table.jsp), però questa pagina risulta priva della collection che dovrebbe esservi presente, il server (glassfishV3) mi rewstituisce questo tipo di errore:

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    NFO: provaTric was successfully deployed in 11.141 milliseconds.
    GRAVE: EJB5070: Exception creating stateless session bean : [controller]
    AVVERTENZA: A system exception occurred during an invocation on EJB controller method public java.util.Collection swich.controller.findMazzetti()
    javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
    at com.sun.ejb.containers.StatelessSessionContainer._ getContext(StatelessSessionContainer.java:448)
    at com.sun.ejb.containers.BaseContainer.getContext(Ba seContainer.java:2418)
    at com.sun.ejb.containers.BaseContainer.preInvoke(Bas eContainer.java:1811)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHan dler.invoke(EJBLocalObjectInvocationHandler.java:1 88)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHan dlerDelegate.invoke(EJBLocalObjectInvocationHandle rDelegate.java:84)
    at $Proxy189.findMazzetti(Unknown Source)
    at controller.TrackTrace.processRequest(TrackTrace.ja va:41)
    at controller.TrackTrace.doGet(TrackTrace.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:734)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:847)
    at org.apache.catalina.core.StandardWrapper.service(S tandardWrapper.java:1523)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:188)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:641)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipel ine.java:97)
    at com.sun.enterprise.web.PESessionLockingStandardPip eline.invoke(PESessionLockingStandardPipeline.java :85)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:185)
    at org.apache.catalina.connector.CoyoteAdapter.doServ ice(CoyoteAdapter.java:332)
    at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:233)
    at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:165)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:791)
    at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:693)
    at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:954)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170)
    at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:6 9)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
    at com.sun.ejb.containers.StatelessSessionContainer$S essionContextFactory.create(StatelessSessionContai ner.java:718)
    at com.sun.ejb.containers.util.pool.NonBlockingPool.g etObject(NonBlockingPool.java:200)
    at com.sun.ejb.containers.StatelessSessionContainer._ getContext(StatelessSessionContainer.java:443)
    ... 33 more
    Caused by: javax.ejb.CreateException: Could not create stateless EJB
    at com.sun.ejb.containers.StatelessSessionContainer.c reateStatelessEJB(StatelessSessionContainer.java:5 26)
    at com.sun.ejb.containers.StatelessSessionContainer.a ccess$000(StatelessSessionContainer.java:90)
    at com.sun.ejb.containers.StatelessSessionContainer$S essionContextFactory.create(StatelessSessionContai ner.java:716)
    ... 35 more
    Caused by: com.sun.enterprise.container.common.spi.util.Injec tionException: Exception attempting to inject Remote ejb-ref name=swich.controller/trackContainerFacade,Remote 3.x interface =session.TrackContainerFacade,ejb-link=null,lookup=null,mappedName=,jndi-name=session.TrackContainerFacade,refType=Session into class swich.controller
    at com.sun.enterprise.container.common.impl.util.Inje ctionManagerImpl._inject(InjectionManagerImpl.java :614)
    at com.sun.enterprise.container.common.impl.util.Inje ctionManagerImpl.inject(InjectionManagerImpl.java: 384)
    at com.sun.enterprise.container.common.impl.util.Inje ctionManagerImpl.injectInstance(InjectionManagerIm pl.java:168)
    at com.sun.ejb.containers.BaseContainer.injectEjbInst ance(BaseContainer.java:1622)
    at com.sun.ejb.containers.StatelessSessionContainer.c reateStatelessEJB(StatelessSessionContainer.java:4 86)
    ... 37 more
    Caused by: javax.naming.NamingException: Lookup failed for 'java:comp/env/swich.controller/trackContainerFacade' in SerialContext [Root exception is javax.naming.NamingException: Exception resolving Ejb for 'Remote ejb-ref name=swich.controller/trackContainerFacade,Remote 3.x interface =session.TrackContainerFacade,ejb-link=null,lookup=null,mappedName=,jndi-name=session.TrackContainerFacade,refType=Session' . Actual (possibly internal) Remote JNDI name used for lookup is 'session.TrackContainerFacade#session.TrackContain erFacade' [Root exception is javax.naming.NamingException: Lookup failed for 'session.TrackContainerFacade#session.TrackContain erFacade' in SerialContext [Root exception is javax.naming.NameNotFoundException: session.TrackContainerFacade#session.TrackContaine rFacade not found]]]
    at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:442)
    at javax.naming.InitialContext.lookup(InitialContext. java:392)
    at com.sun.enterprise.container.common.impl.util.Inje ctionManagerImpl._inject(InjectionManagerImpl.java :513)
    ... 41 more
    Caused by: javax.naming.NamingException: Exception resolving Ejb for 'Remote ejb-ref name=swich.controller/trackContainerFacade,Remote 3.x interface =session.TrackContainerFacade,ejb-link=null,lookup=null,mappedName=,jndi-name=session.TrackContainerFacade,refType=Session' . Actual (possibly internal) Remote JNDI name used for lookup is 'session.TrackContainerFacade#session.TrackContain erFacade' [Root exception is javax.naming.NamingException: Lookup failed for 'session.TrackContainerFacade#session.TrackContain erFacade' in SerialContext [Root exception is javax.naming.NameNotFoundException: session.TrackContainerFacade#session.TrackContaine rFacade not found]]
    at com.sun.ejb.EjbNamingReferenceManagerImpl.resolveE jbReference(EjbNamingReferenceManagerImpl.java:174 )
    at com.sun.enterprise.container.common.impl.Component EnvManagerImpl$EjbReferenceProxy.create(ComponentE nvManagerImpl.java:1040)
    at com.sun.enterprise.naming.impl.GlassfishNamingMana gerImpl.lookup(GlassfishNamingManagerImpl.java:688 )
    at com.sun.enterprise.naming.impl.GlassfishNamingMana gerImpl.lookup(GlassfishNamingManagerImpl.java:657 )
    at com.sun.enterprise.naming.impl.JavaURLContext.look up(JavaURLContext.java:148)
    at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:428)
    ... 43 more
    Caused by: javax.naming.NamingException: Lookup failed for 'session.TrackContainerFacade#session.TrackContain erFacade' in SerialContext [Root exception is javax.naming.NameNotFoundException: session.TrackContainerFacade#session.TrackContaine rFacade not found]
    at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:442)
    at javax.naming.InitialContext.lookup(InitialContext. java:392)
    at com.sun.ejb.EjbNamingReferenceManagerImpl.resolveE jbReference(EjbNamingReferenceManagerImpl.java:169 )
    ... 48 more
    Caused by: javax.naming.NameNotFoundException: session.TrackContainerFacade#session.TrackContaine rFacade not found
    at com.sun.enterprise.naming.impl.TransientContext.do Lookup(TransientContext.java:197)
    at com.sun.enterprise.naming.impl.TransientContext.lo okup(TransientContext.java:168)
    at com.sun.enterprise.naming.impl.SerialContextProvid erImpl.lookup(SerialContextProviderImpl.java:58)
    at com.sun.enterprise.naming.impl.LocalSerialContextP roviderImpl.lookup(LocalSerialContextProviderImpl. java:101)
    at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:430)
    ... 50 more

    AVVERTENZA: StandardWrapperValve[TrackTrace]: PWC1406: Servlet.service() for servlet TrackTrace threw exception
    javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
    at com.sun.ejb.containers.StatelessSessionContainer._ getContext(StatelessSessionContainer.java:448)
    at com.sun.ejb.containers.BaseContainer.getContext(Ba seContainer.java:2418)
    at com.sun.ejb.containers.BaseContainer.preInvoke(Bas eContainer.java:1811)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHan dler.invoke(EJBLocalObjectInvocationHandler.java:1 88)
    at com.sun.ejb.containers.EJBLocalObjectInvocationHan dlerDelegate.invoke(EJBLocalObjectInvocationHandle rDelegate.java:84)
    at $Proxy189.findMazzetti(Unknown Source)
    at controller.TrackTrace.processRequest(TrackTrace.ja va:41)
    at controller.TrackTrace.doGet(TrackTrace.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:734)
    at javax.servlet.http.HttpServlet.service(HttpServlet .java:847)
    at org.apache.catalina.core.StandardWrapper.service(S tandardWrapper.java:1523)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:188)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:641)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipel ine.java:97)
    at com.sun.enterprise.web.PESessionLockingStandardPip eline.invoke(PESessionLockingStandardPipeline.java :85)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:185)
    at org.apache.catalina.connector.CoyoteAdapter.doServ ice(CoyoteAdapter.java:332)
    at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:233)
    at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:165)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:791)
    at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:693)
    at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:954)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170)
    at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:6 9)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
    at com.sun.ejb.containers.StatelessSessionContainer$S essionContextFactory.create(StatelessSessionContai ner.java:718)
    at com.sun.ejb.containers.util.pool.NonBlockingPool.g etObject(NonBlockingPool.java:200)
    at com.sun.ejb.containers.StatelessSessionContainer._ getContext(StatelessSessionContainer.java:443)
    ... 33 more
    Caused by: javax.ejb.CreateException: Could not create stateless EJB
    at com.sun.ejb.containers.StatelessSessionContainer.c reateStatelessEJB(StatelessSessionContainer.java:5 26)
    at com.sun.ejb.containers.StatelessSessionContainer.a ccess$000(StatelessSessionContainer.java:90)
    at com.sun.ejb.containers.StatelessSessionContainer$S essionContextFactory.create(StatelessSessionContai ner.java:716)
    ... 35 more

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Non riesco a raccapezzarmici.
    il codice della servlet è:
    codice:
    package controller;
    
    import entities.TrackContainer;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import javax.ejb.*;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import session.TrackContainerFacadeLocal;
    import swich.controller;
    import swich.controllerLocal;
    
    /**
     *
     * @author
     */
    public class TrackTrace extends HttpServlet {
        @EJB
        private controllerLocal controller;
        /*@EJB
        private TrackContainerFacadeLocal trackContainer; */
    
    
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            
            request.getRequestDispatcher("/table.jsp").forward(request,response);
            try {
                List listaMazzetti = (List) controller.findMazzetti();
                 request.setAttribute("Mazzetti", listaMazzetti);
                    System.out.println(listaMazzetti.size());
                 Iterator it = listaMazzetti.iterator();
                 while(it.hasNext())
                     System.out.println(listaMazzetti);
            } finally { 
                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
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        @Override
        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
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }
    
        /** 
         * Returns a short description of the servlet.
         * @return a String containing servlet description
         */
        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>
    
    }
    Vi ringrazio per l'aiuto che mi darete.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    7
    Ciao, premetto io non ho mai creato o lavorato con gli entities, gli ejb, ma nella scrittura della servlet noto degli errori di scrittura, anche errori proprio di posizionamento di codice nel metodo protected void processRequest();

    il metodo > request.getRequestDispatcher("/table.jsp").forward(request,response); andrebbe posizionato alla fine, perche cosi come sta, appena arriva la chiamata si ridirigge alla jsp senza settare gli attributi.. poi invochi la classe PrintWriter ma in effetti non la sfrutti mai perche scrivi su consolle con il System.out.println, il PrintWrite gia di per se ti scrive nella pagina senza bisogno di ridiriggere alla jsp quindi come hai scritto gli stai dicendo visualizzami, un output e poi apri il una jsp, non vedrai mai niente cosi.. adesso ti posto il metodo in ordine e se non ci saranno altri errori negli ejb dovresti visualizzare il risultato...


    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    request.getRequestDispatcher("/table.jsp").forward(request,response); < questo va alla fine...
    try {
    List listaMazzetti = (List) controller.findMazzetti();
    request.setAttribute("Mazzetti", listaMazzetti);
    System.out.println(listaMazzetti.size()) ; < qui stai scrivendo su consolle e non nella pagina...
    Iterator it = listaMazzetti.iterator();
    while(it.hasNext())
    System.out.println(listaMazzetti); < qui stai scrivendo su consolle e poi non capisco come vuoi vedere i dati gli hai passato l'intera lista e non cicli sull l'elemento cose che succedono non preoccuparti...
    } finally {
    out.close();
    }
    }
    -------------------------------------------------------------------------

    un metodo piu ordinato :
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();


    try {
    List listaMazzetti = (List) controller.findMazzetti();

    out.println(listaMazzetti.size());
    Iterator it = listaMazzetti.iterator();
    while(it.hasNext()){
    Object obj=(Object)it.next();
    out.println(lobj);
    }

    } finally {
    out.close();
    }
    }

    Nota.. se la lista e di tipo Mazzetti allora puoi ciclare nel metodo while anche cosi:
    while(it.hasNext()){
    Mazzetti maz=(Mazzetti)it.next();
    out.println(maz.getNome());
    out.println(" "); < spazio...
    out.println(maz.getCognome());
    ecc.. ecc..

    }

    -----------------

    quetso il metodo corretto per visualizzare il contenuto nella jsp dichiarata :

    poi nella jsp dovrai prelevare la List con request.getAttribute("Mazzetti");
    e ciclare cu essa per visualizzare la lista....
    ----------------
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {


    List listaMazzetti = (List) controller.findMazzetti();


    request.setAttribute("Mazzetti", listaMazzetti);

    request.getRequestDispatcher("/table.jsp").forward(request,response);


    }
    spero di esserti stato utile ciao.. e buona domenica

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Grazie mille, adesso non posso vedere se scritto così il metodo funziona domani appena ritorno al lavoro provo subito e ti farò sapere.
    Per quanto riguarda i System.out erano messi li solamente per vedere se mi stampava qualcosa sulla console.
    Comunque grazie infinitamente.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    203
    Ciao jText,
    Allora ho provato a fare come dicevi tu ma la collection non ne vuole proprio sapere di uscire fuori.
    Se scrivo così:

    request.getRequestDispatcher("/table.jsp").forward(request,response);
    try {

    List listaMazzetti = (List) controller.findMazzetti();
    Iterator it = listaMazzetti.iterator();
    while(it.hasNext()){
    Object obj=(Object)it.next();
    request.setAttribute("Mazzetti", listaMazzetti);
    }

    Mi restiruisce null;

    Se scrivo così:

    try {
    List listaMazzetti = (List) controller.findMazzetti();
    Iterator it = listaMazzetti.iterator();
    while(it.hasNext()){
    Object obj=(Object)it.next();
    request.setAttribute("Mazzetti", listaMazzetti);
    }
    request.getRequestDispatcher("/table.jsp").forward(request,response);

    } finally {
    out.close();
    }

    Non mi reindirizza nemmeno alla servlet.
    Sto impazzendo dove sbaglio?
    Qualcuno ne ha idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.