Visualizzazione dei risultati da 1 a 3 su 3

Discussione: java - jsp -ajax

  1. #1

    java - jsp -ajax

    salve a tutti,
    avrei bisogno di un chiarimento. ho creato un applicativo web che alla pressione di un bottone mi va a registrare un utente tramite una funzione ajax. Il problema sta nel ritorno del dato. Cioè questo è il codice che uso nel momento in cui effettuo la memorizzazione dell'utente nel db
    response.resetBuffer(); response.setContentType ("text/xml"); XStream xstream = new XStream(new DomDriver()); xstream.alias("root", String.class); try { if(risultato){ xstream.toXML("true", response.getOutputStream()); }else{ xstream.toXML("false", response.getOutputStream()); } response.getOutputStream().flush(); response.getOutputStream().close(); } catch (IOException e) { e.printStackTrace(); }
    DITEMI SE SBAGLIO QUALCOSA...

    nel momento in cui la servlet mi fa la forward (di seguito il codice)
    RequestDispatcher rd = getServletContext().getRequestDispatcher(mainPage) ; rd.forward(request, response);
    mi sputa questo errore
    13-lug-2009 15.24.25 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet FrontController threw exception java.lang.IllegalStateException: Cannot forward after response has been committed at org.apache.catalina.core.ApplicationDispatcher.doF orward(ApplicationDispatcher.java:313) at org.apache.catalina.core.ApplicationDispatcher.for ward(ApplicationDispatcher.java:301) at it.antonio.controller.FrontController.doAction(Fro ntController.java:91) at it.antonio.controller.FrontController.doPost(Front Controller.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet .java:709) at javax.servlet.http.HttpServlet.service(HttpServlet .java:802) at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:619)
    Non capisco dove sia l'errore... la pagina gli viene passata!! grazie a tutti per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    96
    L'errore è piuttosto chiaro:

    Nel codice precedente invochi
    response.getOutputStream().close();

    quindi la risposta è chiusa, inviata. Non puoi farci più niente (ad esempio in STRUTS anzichè tornare un forward di solito si ritorna null).

  3. #3
    ciao e grazie per il tuo intervento...
    Ho capito che non devo invocare il forward quando faccio questo tipo di chiamate e quindi l'errore non me lo ritrovo +!

    Ora però non riesco a recuperarmi i dati dal javascript! so che nella response ho il risultato che ho salvato ma non riesco a prenderlo!

    come faccio????
    grazie

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.