probleme HttpSession - RequestDispatcher

probleme HttpSession - RequestDispatcher - Java - Programmation

Marsh Posté le 04-05-2008 à 00:19:00    

hello tout le monde
voila j'ai un pb un peu étrange avec une servlet en java :
je veux stocker un objet (pr l'instant basique 3 String et 1 int) dans la session en cours. Tout se passe bien. Une fois l'objet stocké (session.setAttribute) je veux rediriger sur une jsp qui utilisera l'objet en question, mais lorsque j'appelle un RequestDispatcher.forward (ou .include) le chargement reste bloqué et la page ne s'affiche pas. Par contre si je stocke mon objet dans la request, tout se déroule bien, mais l'objet est perdu une fois la page renvoyée :-/
 
J'ai cherché un peu partout et j'ai pas trouvé de pb similaire, alors est-ce qu'on ne peut stocker que des objet String dans une session ou j'ai raté un truc gros comme le nez ?
si qq'1 à une idée je suis preneur parce que la apres plus d'une semaine à chercher je suis vraiment bloqué.
Merci d'avance :)

Reply

Marsh Posté le 04-05-2008 à 00:19:00   

Reply

Marsh Posté le 04-05-2008 à 09:23:16    

setAttribute, ca prend des objets en paramètres -> le int que tu crois stocké est stocké sous la forme d'un Integer. (c'est peut être caché si tu es en java 1.5, avec l'autoboxing)
 
Mais ça ne pose pas de problème, logiquement, ce que tu veux faire. Il faut que tu regardes mieux pourquoi ta "page ne s'affiche pas".


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 04-05-2008 à 12:00:11    

ben justement ça devrait s'afficher.
 
Quand je stocke ds la requête pas de pb et quand je stocke dans la session au moment du forward (ou include) le navigateur attend la page et rien ne s'affiche. Par contre si ne stocke qu'un String dans la session ça marche normalement, c'est pourqoi je me disais qu'on ne pouvait peut être pas stocker ses propres objets.
 
Il n'y a pas de configuration particulière sur le tomcat pour autoriser une taille d'objet dans une session ou qqc du même genre ? (tomcat 6)

Reply

Marsh Posté le 04-05-2008 à 13:03:03    

Que disent les logs applicatifs et access?
 
Ton objet est bien sérialisable? (Encore que, s'il ne l'était pas, je m'attendrais à un beau stack trace et un HTTP 500 plutôt qu'un blocage).
 
Tu as peut-être introduit une boucle. Tu testes avec IE? Si oui, essaye FF, il détecte promptement les conditions de boucle.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 04-05-2008 à 14:14:45    

mmm dans sa déclaration il n'y a pas de "extends serializable" mais j'avais fait le test et ça n'avait rien changé :(
 
il n'y a aucune boucle, dans ma servlet je créé mon objet, je le stock dans la session et je redirige vers une jsp qui appelle via un jsp:useBean l'objet dans la session pour y afficher ses propriétés.
 
J'ai testé le bean séparément dans la jsp ça fontionne normalement, c'est pour ça je comprend vraiment pas. J'ai testé par le plugin eclipse sur tomcat, j'ai déployé directement sur le tomcat et j'ai essayé sur une autre machine mais tjrs le même résultat ...
Par contre lors du forward je crois que le tomcat ou la servlet prennent toutes les ressources parce qu'au bout de qq secondes si je coupe pas mon serveur tout est ralenti (le processus javaw accapare le processeur)
J'essayerai avec firefox, je suppose que dans eclipse ça prend par défaut le moteur ie (je ne suis pas chez moi pr le moment)
 
Sinon ou se trouvent les logs par défaut ?
 
merci de ces suggestions en tt cas :)

Reply

Marsh Posté le 04-05-2008 à 15:00:38    

rjuju a écrit :

mmm dans sa déclaration il n'y a pas de "extends serializable" mais j'avais fait le test et ça n'avait rien changé :(


implements Serializable
 

rjuju a écrit :

il n'y a aucune boucle, dans ma servlet je créé mon objet, je le stock dans la session et je redirige vers une jsp qui appelle via un jsp:useBean l'objet dans la session pour y afficher ses propriétés.


Je ne parle pas d'une boucle "for" ou "while" mais d'une boucle possible dans les forward/redirect, qui a pour effet de passer sans fin d'une page à une autre. D'où mon conseil FF vs IE.
 

rjuju a écrit :

Sinon ou se trouvent les logs par défaut ?


RTFM please, et les logs applicatifs, ça depend de ton appli.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

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