un forward qui plante

un forward qui plante - Java - Programmation

Marsh Posté le 28-02-2007 à 11:19:38    


je suis débutant en JAVA/J2EE, et je m'exerce sur des tuto pour mettre à niveau mon système d'information actuel avec ces technos.  
 
Voilà le soucis:
 
j'ai une servlet "d'aiguillage" qui forward vers des jsp selon la valeur d'un paramètre "formulaire".
Lorsque formulaire vaut "personne", ma servlet forward vers une jsp, et la ca plante:
 
la ligne incriminée:
 

Code :
  1. RequestDispatcher disp = req.getRequestDispatcher("listeuser.jsp" );
  2. disp.forward(req, res);


 
message d'erreur tomcat:
 

Code :
  1. 2007-02-28 11:08:30 StandardWrapperValve[Servlet1]: "Servlet.service()" pour la servlet Servlet1 a généré une exception
  2. java.lang.IllegalStateException: Impossible d'utiliser faire-suivre (forward) après que la réponse ait été envoyée
  3.         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:324)
  4.         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
  5.         at mvc1.Servlet1.doGet(Unknown Source)
  6.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  7.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  8.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
  9.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
  10.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
  11.         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  12.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  13.         at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
  14.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
  15.         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  16.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  17.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
  18.         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  19.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
  20.         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  21.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  22.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  23.         at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  24.         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  25.         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
  26.         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  27.         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
  28.         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
  29.         at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
  30.         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
  31.         at java.lang.Thread.run(Thread.java:534)


 
merci de votre aide

Reply

Marsh Posté le 28-02-2007 à 11:19:38   

Reply

Marsh Posté le 28-02-2007 à 15:58:08    

c'est parceque tu as déja envoyé la réponse (comme il te le dit d'ailleurs). J'ai déja eu le soucis, mais j'sais pu comment je m'en étais sorti :D

Reply

Marsh Posté le 28-02-2007 à 16:56:09    


je vois vraiment pa koi faire...le code est conforme à l'exercice

Reply

Marsh Posté le 01-03-2007 à 15:08:29    

did-54 a écrit :

c'est parceque tu as déja envoyé la réponse (comme il te le dit d'ailleurs). J'ai déja eu le soucis, mais j'sais pu comment je m'en étais sorti :D


 
j'ai 2 forward dans ma servlet du style:
 

Code :
  1. if( formulaire = null)
  2. {
  3. RequestDispatcher disp = req.getRequestDispatcher("listedata.jsp" );
  4. disp.forward(req, res);
  5. }
  6. else
  7. {
  8. <des instructions>
  9. RequestDispatcher disp = req.getRequestDispatcher("listedata.jsp" );
  10. disp.forward(req, res);
  11. }


 
et ça il aime pas.  
 
merci de votre aide
 

Reply

Marsh Posté le 01-03-2007 à 17:07:14    

Vérifie que tu n'écris rien dans la réponse avant de faire un forward.

Reply

Marsh Posté le 01-03-2007 à 17:52:06    

Bidem a écrit :

Vérifie que tu n'écris rien dans la réponse avant de faire un forward.


 
ca marche maintenant.
 
j'ai simplement renommé req en resquest et res en response.  
 
Quand je travaillais avec seulement des servlet, ca marchait, mais avec des JSP, je crois qu'on est obligé de nommer en request et response...dites moi si je me trompe.
 

Reply

Marsh Posté le 01-03-2007 à 22:02:43    

Ton if est faux, tu fais une affectation au lieu d'une comparaison ;)

Reply

Marsh Posté le 02-03-2007 à 10:15:29    

Salut,
 
j'ai le MEME soucis avec le meme BOUQUIN sur le MEME exo !  :lol: (dev web de Mr Sarrion !).
 
Mais moi j'ai bien request et esponse et nom de variable...
 
Et j'ai cette erreur qui commence à me tanner car elle me bloque ds l'avancement de mon autoformation !!!  :fou:  
 
As tu eu d'autres pistes depuis ?
 
D'apres toi où l'erreur se "crée" t'elle ? (jsp, servlet, classe accesBd ?)
 
Je précise pour les autres qu'à aucun moment on n'ecrit quoi que ce soit dans le "response" dans cet exercice... (qui est censé avoir été compilé et testé par le bouquin, mais bon, le bouquin est quand même super bien fait, alors soyons clément !).
 
Merci,
 
Pierre.

Reply

Marsh Posté le 02-03-2007 à 13:08:27    

Envoyez le code complet parceque là on va avoir du mal quand même ...

Reply

Marsh Posté le 02-03-2007 à 14:08:42    

did-54 a écrit :

Ton if est faux, tu fais une affectation au lieu d'une comparaison ;)


 
oui en effet...j'ai rectifié
 

Reply

Marsh Posté le 02-03-2007 à 14:08:42   

Reply

Marsh Posté le 16-07-2018 à 16:13:02    

Bonjour,
Je confirme, il faut mieux écrire :
 

Code :
  1. String jspCible ="";
  2. if( formulaire = null)
  3. {
  4. jspCible = "listedata1.jsp";
  5. }
  6. else
  7. {
  8. <des instructions>
  9. jspCible = "listedata2.jsp";
  10. }
  11. RequestDispatcher disp = req.getRequestDispatcher(jspCible);
  12. disp.forward(req, res);


 
Cordialement.


Message édité par dhraxo le 16-07-2018 à 16:14:53

---------------
Si la masse n\
Reply

Marsh Posté le 16-07-2018 à 17:02:09    

Joli le déterrage :o


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
Reply

Marsh Posté le 19-07-2018 à 11:19:40    

Surtout pour nous balancer ceci:
if( formulaire = null)
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed