Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2700 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  IllegalStateException à cause d'une sendRedirect

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

IllegalStateException à cause d'une sendRedirect

n°245202
persepolis
Posté le 14-11-2002 à 15:36:27  profilanswer
 

J'ai une méchante erreur dans un jsp :
 
java.lang.IllegalStateException at org.apache.catalina.connector.HttpResponseFacade.sendRedirect(HttpResponseFacade.java:173)
 
Mes 2 lignes de codes qui passent pas :
 
if (userName == null)
   response.sendRedirect("ident.jsp" );
 
J'comprends pas le problème et je ne sais pas où chercher!!!
Quelqu'un a-t-il eu le pb?
 
P.s: Ce bout de code marche dans un petit jsp et j'ai voulu l'integrer dans un autre jsp...


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
mood
Publicité
Posté le 14-11-2002 à 15:36:27  profilanswer
 

n°245209
lorill
Posté le 14-11-2002 à 15:41:19  profilanswer
 

t'as deja envoyé qqch au client avant la redirect ?

n°245214
persepolis
Posté le 14-11-2002 à 15:45:07  profilanswer
 

lorill a écrit a écrit :

t'as deja envoyé qqch au client avant la redirect ?




J'pense pas.
C'est mon programme de démarrage et avant, y'a que de l'html et du javascript.
Je bout complet de java :
 
<%@ page language="java" import="java.util.*, java.io.*, java.text.*, java.lang.*" %>
<%
    String strCurrentRep = "D:\\Stl\\Serveur_Log\\Terminaux";      // Nom du lecteur courant
    int    nFileNumber;   // nombre de fichiers dans un lecteur
    File   fileArray[];   // tableau des fichiers
    int    nFileNumber1;   // nombre de fichiers dans un lecteur
    File   fileArray1[];   // tableau des fichiers
    String userName;
    userName  = (String)session.getAttribute("userName" );
    if (userName == null){
       try{ response.sendRedirect("ident.jsp" );}
       catch (IOException e)
        {e.printStackTrace();}
    }
%>


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245218
lorill
Posté le 14-11-2002 à 15:46:27  profilanswer
 

persepolis a écrit a écrit :

 
C'est mon programme de démarrage et avant, y'a que de l'html et du javascript.




 
donc tu envois quelquechose au client avant  [:sinclaire]

n°245225
--greg--
Posté le 14-11-2002 à 15:48:50  profilanswer
 

[:sinclaire]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°245231
persepolis
Posté le 14-11-2002 à 15:50:32  profilanswer
 

lorill a écrit a écrit :

 
 
donc tu envois quelquechose au client avant  [:sinclaire]  




Supposons... Tu veux en venir où?
Si je place mon bout de code juste apres le <body> ça irait mieux ?
...  
apres essai:Non ca va pas mieux (tu t'en doutais)


Message édité par persepolis le 14-11-2002 à 15:53:43

---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245236
darklord
You're welcome
Posté le 14-11-2002 à 15:53:06  profilanswer
 

bin si t'as envoyé qqch au client tu peux pas faire de sendRedirect ...


---------------
Just because you feel good does not make you right
n°245242
persepolis
Posté le 14-11-2002 à 15:56:41  profilanswer
 

DarkLord a écrit a écrit :

bin si t'as envoyé qqch au client tu peux pas faire de sendRedirect ...




Et comment je peux deja avoir envoyé qqchose au customer alors que je fous mon code just after <body>
P.S: y fait beau en Italie?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245244
lorill
Posté le 14-11-2002 à 15:58:32  profilanswer
 

persepolis a écrit a écrit :

 
Et comment je peux deja avoir envoyé qqchose au customer alors que je fous mon code just after <body>




 
toi, t'as pas tout compris  :whistle:  
une jsp est transformée en servlet au premier appel, ok ?
 
quand tu as une ligne de html ou autre, ca se transforme en  
out.print("toncodehtml" );
 
tu peux regarder dans ton repertoire work pour voir.
donc du coup, ben tu envoie quelque chose.

n°245247
darklord
You're welcome
Posté le 14-11-2002 à 16:01:18  profilanswer
 

persepolis a écrit a écrit :

 
Et comment je peux deja avoir envoyé qqchose au customer alors que je fous mon code just after <body>
P.S: y fait beau en Italie?




 
pour la première question on a déjà répondu. Pour la seconde c'était assez mitigé mais je suis rentré là :)


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le 14-11-2002 à 16:01:18  profilanswer
 

n°245249
persepolis
Posté le 14-11-2002 à 16:01:46  profilanswer
 

lorill a écrit a écrit :

 
 
toi, t'as pas tout compris  :whistle:  
une jsp est transformée en servlet au premier appel, ok ?
 
quand tu as une ligne de html ou autre, ca se transforme en  
out.print("toncodehtml" );
 
tu peux regarder dans ton repertoire work pour voir.
donc du coup, ben tu envoie quelque chose.




Si ca j'ai bien vu.
et avec ffj on peut meme avoir la servlet pour voir ou sa plante.
Par contre, je comprends pourquoi un petit jsp marche et pas celui là.
Ce que je me demande, c'est :
Qu'est ce qui est envoye au client qui fait que mon sendRedirect ne marche pas ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245251
lorill
Posté le 14-11-2002 à 16:02:40  profilanswer
 

parce que dans ton petit jsp t'as rien avant  [:sinclaire]

n°245259
persepolis
Posté le 14-11-2002 à 16:09:41  profilanswer
 

lorill a écrit a écrit :

parce que dans ton petit jsp t'as rien avant  [:sinclaire]  




J'vais comparer les 2 servlets dans works pour voir ...


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245276
persepolis
Posté le 14-11-2002 à 16:35:57  profilanswer
 

Y'aurait-il une autre solution ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245282
darklord
You're welcome
Posté le 14-11-2002 à 16:42:11  profilanswer
 

persepolis a écrit a écrit :

Y'aurait-il une autre solution ?




 
bin faire ce genre de check au début de ta page ...


---------------
Just because you feel good does not make you right
n°245284
persepolis
Posté le 14-11-2002 à 16:45:43  profilanswer
 

DarkLord a écrit a écrit :

 
 
bin faire ce genre de check au début de ta page ...




J'ai a peu pres tout enlever ...
Maintenant ca marche .
Le pb c'est que j'avais des javascript de confirmatio de suppression ou d'ouverture de fenêtre .
Et tout ca, c'est dans <head>
Je pourrais mettre dans head mon java?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245287
lorill
Posté le 14-11-2002 à 16:47:07  profilanswer
 

putain, t'as VRAIMENT pas compris.
 
meme si visuellement ton code java et ta page sont liée, en fait ils n'ont rien a voir ! tu t'en cognes de savoir si tu es dans body ou dans head quand tu l'executes !

n°245292
persepolis
Posté le 14-11-2002 à 16:51:30  profilanswer
 

lorill a écrit a écrit :

putain, t'as VRAIMENT pas compris.



On se calme. J'essaye de comprendre...
[citation]
meme si visuellement ton code java et ta page sont liée, en fait ils n'ont rien a voir ! tu t'en cognes de savoir si tu es dans body ou dans head quand tu l'executes !
[/citation]
Et là je crois même que je tiens le bon bout
Je vais même essayer de le mettre avant la balise html  :D


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245293
darklord
You're welcome
Posté le 14-11-2002 à 16:53:53  profilanswer
 

persepolis a écrit a écrit :

 
J'ai a peu pres tout enlever ...
Maintenant ca marche .
Le pb c'est que j'avais des javascript de confirmatio de suppression ou d'ouverture de fenêtre .
Et tout ca, c'est dans <head>
Je pourrais mettre dans head mon java?




 
 :heink:  :( bin ...


---------------
Just because you feel good does not make you right
n°245296
persepolis
Posté le 14-11-2002 à 16:59:27  profilanswer
 

DarkLord a écrit a écrit :

 
 
 :heink:  :( bin ...




Ben ouais, une fois de plus, j'avais pas tout compris...
Mais bon ca marche maintenant.
Encore une journée de perdue pour cette connerie .
merci ainsi qu'a lorill.
 
Question subsidiaire, qu'a rien a voir .
Avec apache et Tomcat, sous 2000, je me retape le redemarrage des 2 services a chaque modif . C'est koi la règle ?


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
n°245297
lorill
Posté le 14-11-2002 à 16:59:28  profilanswer
 

persepolis a écrit a écrit :

 




 
je suis encore calme, t'aurais pas eu de réponse sinon  :hello:

n°245561
benou
Posté le 14-11-2002 à 20:11:32  profilanswer
 

pour pouvoir faire un send Redirect, il faut simplement qu'il n'y ait eu aucun caractère d'écru dans le flux de sortie.
Tout les caractères qui ne sont pas enter balises <% ... %> sont envoyés dans le flux de sortie => il faut que tu mettes le <% en début de fichier ...

n°245708
darklord
You're welcome
Posté le 15-11-2002 à 08:15:47  profilanswer
 

benou a écrit a écrit :

pour pouvoir faire un send Redirect, il faut simplement qu'il n'y ait eu aucun caractère d'écru dans le flux de sortie.
Tout les caractères qui ne sont pas enter balises <% ... %> sont envoyés dans le flux de sortie => il faut que tu mettes le <% en début de fichier ...




 

Citation :


bin faire ce genre de check au début de ta page ...


 
 :ange:  :pfff:


---------------
Just because you feel good does not make you right
n°1000775
dcvlm
Yep
Posté le 04-03-2005 à 15:35:47  profilanswer
 

Mesdames, Messieurs.....
 
J'ai le même problème, et je début en Java....Mais comme je fais pas de JSP, j'ai pas pu adapter ce que vous disiez à mes servlets.
A mon avis, ca devrait pas vs prendre trop de tps....

Code :
  1. import java.io.*;
  2. import java.sql.*;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import java.lang.*;
  6. import javax.swing.*;
  7. import java.util.*;
  8. import java.text.*;
  9. public class LectureTableNew extends HttpServlet
  10. {
  11. public void service (HttpServletRequest req, HttpServletResponse res)
  12. throws ServletException, IOException
  13. {
  14.  /**************On vérifie si la session est valide**************/
  15.  String session_valide="false";
  16.  try {
  17.   session_valide=(String)req.getSession(false).getAttribute("session_valide" );
  18.  }
  19.   //Si on rentre dans le catch, c'est que le try génére une erreur,  
  20.   //càd pas de session dc absolument pas valide du tout !!, dc retour identification
  21.  catch(java.lang.NullPointerException e) {res.sendRedirect("Index" );}
  22.  //Si la session existe, mais non valide ->idem
  23.  if (!session_valide.equals("true" )) {res.sendRedirect("Index" );}
  24.  /********* Ici, la session est valide (c'est le else du if ci dessous) ********/


 
Donc selon moi, je "n'envoie rien avant"....
et ca me donne ca :


java.lang.IllegalStateException
 org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect(CoyoteResponseFacade.java:352)
 LectureTableNew.service(LectureTableNew.java:26)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
 org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
 org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:810)


 
En fait, au début je voulais mettre ca dans un "filter" puisqu'en fait j'aurais ce code en chaque début de page, mais non merci, j'y ai passé 2 jrs sans succès !!! Grrr  :fou:  (C'est pour vous expliquer le contexte)
 
Merci bcp  :hello:


---------------
ZZZZzzzzz
n°1003342
dcvlm
Yep
Posté le 07-03-2005 à 10:44:43  profilanswer
 

Bon, après mon post s


---------------
ZZZZzzzzz
n°1003343
dcvlm
Yep
Posté le 07-03-2005 à 10:44:48  profilanswer
 

Bon, après mon post sans succès de vendredi soir...
Y'a t-il du monde en plein forme après le week end pour avoir une idée ???  :D  
 
Merci  :cry:


Message édité par dcvlm le 07-03-2005 à 10:45:46

---------------
ZZZZzzzzz
n°1003349
the real m​oins moins
Posté le 07-03-2005 à 10:50:22  profilanswer
 

catch(java.lang.NullPointerException e)


[:ciler]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1003375
dcvlm
Yep
Posté le 07-03-2005 à 11:06:46  profilanswer
 

the real moins moins a écrit :

catch(java.lang.NullPointerException e)


[:ciler]


 :D G l'impression que ca te fait bondir.... Prb : je suis sacrément débutant en java....
Dc ce que j'ai réussi à comprendre, c que qd on veut éviter la merde, on fait un try que l'on récupère avec un catch si ca merde....
Après le "e" c'est parce qu'il me semble qu'il faut mettre un nom de variable, non ???  :??:  
 
Et apres avoir lu pas mal de truc, je pense p-e que ca vient du fait que la réponse aurait déja été envoyée... Mais je ne vois pas où : j'ai encore rien envoyé au client, non ???  :??:  
 
Help !


---------------
ZZZZzzzzz
n°1003389
the real m​oins moins
Posté le 07-03-2005 à 11:17:51  profilanswer
 

dcvlm a écrit :

:D G l'impression que ca te fait bondir.... Prb : je suis sacrément débutant en java....
Dc ce que j'ai réussi à comprendre, c que qd on veut éviter la merde, on fait un try que l'on récupère avec un catch si ca merde....


ben t'as mal compris où on t'as mal expliqué. essaie déjà de comprendre ce que c'est que cette exception...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1003442
dcvlm
Yep
Posté le 07-03-2005 à 11:55:26  profilanswer
 

the real moins moins a écrit :

ben t'as mal compris où on t'as mal expliqué. essaie déjà de comprendre ce que c'est que cette exception...


bah cette execption je pense l'avoir compris : c qd un pointeur pointe "vers rien"...
et en fait je veux volontairement me servir de cette erreur...
Je lui demande  

session_valide=(String)req.getSession(false).getAttribute("session_valide" );


avec getSession(false). dc si la session n'existe pas, ca me génére une null pointer execption... d'où mon souhait d'utiliser le catch pr le revnoyer sur l'identification (la servelt Index)....
 
C'est idiot ?


---------------
ZZZZzzzzz
n°1003449
the real m​oins moins
Posté le 07-03-2005 à 12:00:55  profilanswer
 

oui


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1003453
the real m​oins moins
Posté le 07-03-2005 à 12:02:10  profilanswer
 

jamais entendu parler de variable, de test conditionnel (if...) , ... ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1003468
dcvlm
Yep
Posté le 07-03-2005 à 12:13:04  profilanswer
 

the real moins moins a écrit :

jamais entendu parler de variable, de test conditionnel (if...) , ... ?


 :o Doucement !
Si j'ai entendu parlé de variables, de test conditionnels...
 
Mais voyez-vous, ôh grand mâitre, si j'avais su/eu l'idée d'utiliser les dites variables et autres tests conditionnels et d'en faire qq chose qui marchait, je l'aurai fait !  :pfff:  
 
Donc plutot que de me dire betement : variables tu connais ??? Dis moi quelle idée tu as de l'utilisation de ces variables et tests conditio....
Ca sera quand meme mieux, non ?


---------------
ZZZZzzzzz
n°1003474
glod 2
Votre trajet, notre projet.
Posté le 07-03-2005 à 12:18:42  profilanswer
 

teste si req.getSession(false).getAttribute("session_valide" );
} est null plutôt que de catcher un nullpointer...

n°1003476
the real m​oins moins
Posté le 07-03-2005 à 12:20:51  profilanswer
 

glod 2 a écrit :

teste si req.getSession(false) est null plutôt que de catcher un nullpointer...


[:aloy]
 


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1003491
glod 2
Votre trajet, notre projet.
Posté le 07-03-2005 à 12:30:38  profilanswer
 


oui j'allais éditer ce serait encore mieux mais bon on sait jamais, sa vérif de session repose pê sur le fait que .getAttribute("session_valide" ) existe ( :o )

n°1003498
the real m​oins moins
Posté le 07-03-2005 à 12:34:18  profilanswer
 

le npe est lancé sur la session nulle puisque son false demande explicitement à ce qu'une session ne soit pas crée si elle n'existe pas


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1003509
glod 2
Votre trajet, notre projet.
Posté le 07-03-2005 à 12:43:04  profilanswer
 

Oui mais la session peut ne pas être nulle mais le .getAttribute("session_valide" ) l'être [:aloy]

n°1003515
dcvlm
Yep
Posté le 07-03-2005 à 12:50:53  profilanswer
 

Glod2 président !  :bounce:  
 
En effet, je dois vérifier la valeur d'un attribut pour déclarer que la session est valide (session_valide en l'occurence).
 
Dc en effet, si je fais un test là dessus :

 session_valide=(String)req.getSession(true).getAttribute("session_valide" );
if (session_valide==null) {res.sendRedirect("Index" );return;}


Et bien ca marche parfaitement..
 
En revanche, si je passe le true en false, bien, ca m'envoie un "npe"....
D'où mon catch...
 
Donc, je pense qu'il faut reprendre le code que j'avais donné au début, et me dire pourquoi j'ai une erreur.
 
Astuce : dans le code ci- au dessus, qd je fais un forward au lieu de sendRedirect, ca me dit "impossible, là réponse a déja été envoyée" : ce qui tend à montrer que le problème vient de là...
 
 :hello:


---------------
ZZZZzzzzz
n°1003520
the real m​oins moins
Posté le 07-03-2005 à 13:00:22  profilanswer
 

glod 2 a écrit :

Oui mais la session peut ne pas être nulle mais le .getAttribute("session_valide" ) l'être [:aloy]


et alors? c'est pas ça qui declenche le null pointer exception, c'est le fait que la session soit nulle [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  IllegalStateException à cause d'une sendRedirect

 

Sujets relatifs
UNIT CRT me cause un HORREUR .....vla encore une requete qui me cause un souci
Access; pb de création de graphique à partir d'une requête (cause sq)Perte du controle du clavier à cause de la toolbar (Java)
Plus de sujets relatifs à : IllegalStateException à cause d'une sendRedirect


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)