IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres Java Discussion :

Sessions différentes selon le navigateur


Sujet :

Autres Java

  1. #1
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut Sessions différentes selon le navigateur
    Bonjour à tous,

    Je commence à être un peu à court d'idée, donc je viens chercher des lumières chez les experts. Je travaille sur une grosse application Java EE (Struts) sur un serveur d'application Oracle AS (plutôt vieillot).

    Aujourd'hui j'ai un problème, un objet que je stocke en session pour le recharger ensuite sur une autre page ne "revient pas" avec les mêmes données.

    Sur Firefox par contre le fonctionnement est correct. Je reste très perplexe quant au comportement de l'application car j'ai du mal à voir ce que le navigateur vient faire au niveau des sessions (je sais que chacun a sa mécanique de gestion de la récupération de session mais enfin...).

    J'ai tenté de débugger mon application sur Eclipse/Tomcat, et là, je vois ceci :
    Côté Firefox lors de l'appel à

    session.setAttribute("monobjet",monform);

    La référence indiquée est :

    fr.projet.ObjetForm@1a0e2d1[.....]

    Sur la page suivante lorsque je recharge :

    ObjetForm monform = session.getAttribute("monobjet");

    La référence indiquée est :

    fr.projet.ObjetForm@1a0e2d1[.....]

    Les valeurs sont identiques et les références de tous les "sous objets" sont aussi identiques.

    En revanche pour le même code sur Chrome ou IE, les références ne sont plus les mêmes (fr.projet.ObjetForm@ad8e84 et fr.projet.ObjetForm@1ee2c5) et pire certaines données ne sont plus les bonnes, exemple un string qui passe de :
    forward=success à forward=<null>

    Ma question globale est : Est-ce que ce comportement est normal? Pourquoi le comportement du serveur est différent selon le navigateur??

    D'autre part, est-ce qu'une fois mis en session mon objet peut être modifié et l'objet en session impacté dans la foulée ou bien il faut toujours explicitement faire un appel à getAttribute et setAttribute? Je pensais que c'était le second cas mais cela pourrait peut être expliquer le problème (bien qu'entre les deux appels la valeur de ce fameux forward n'est pas modifiée en théorie...).

    Voilà merci d'avance à ceux qui auront lu.
    Linio

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    comme ça je n esaurais te répondre.

    mais lorsque le serveur reçois une requete du navigateur il reçoit avec tout un tas d'informations parmi ces info il y a le UserAgent qui permet au serveur de connaitre les capacité du navigateur et il arrive souvent que les serveur soit configuré pour avoir des comportement légèrement différent d'un navigateur à l'autre.

    ça n'a donc rien d'étonnant.

    par contre en général ces réglages sont là pour que justement tous les navigateurs ait un comportement identique face au serveur (chose qu'ils n'ont pas par défaut)

    pour ce qui est des session ça me parait pas très normal.
    qu'en est-il de l'identifiant de session ?

    j'ai bien l'impression que tu ne récupère pas la même session.

    A+JYT
    A+JYT

  3. #3
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Comme le dit sekaijin, ta session doit "changer" car le navigateur :
    - n'a pas compris le cookie de session
    - n'a pas renvoyé le cookie de session

    tu peux faire un "session.getId();" pour obtenir l'ID et voir s'il change quand tu passes de page en page (normalement non)

    Est-ce que tu attaques Oracle AS directement où il a un serveur frontal style Apache ? si il y a un serveur frontal, est-ce mod_jk ou mod_proxy qui est utilisé pour forwarder les requêtes.

    Je crois me souvenir de ce genre de comportements un peu étrange avec de vieilles version d'apache en frontal. Comme ton projet n'a pas l'air d'être "récent" ...
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  4. #4
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    il me semblent aussi que les pages d'erreurs (404) invalident les sessions, surtout quand elle redirigent vers une page de login.

    Si jamais ta page appelle une ressource inexistante (favicon, images, css, etc...) qui génère une 404 "invisible", cela peut t'invalider la session.

    Le coup du favicon, me dit qqch d'ailleurs, et est lié effectivement assez à IE.

    Tiens :
    http://www.webperformance.com/load-t...server-stunts/


    pour créer un favicon :
    http://1loup.net/index.php/2007/02/2...x-valide-xhtml
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  5. #5
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Tout d'abord merci de vos réponses.
    J'ai regardé, avec un test sous Chrome, je récupère bien l'identifiant de la session et il est identique sur la page A et la page B.

    Ce qui me semble étonnant c'est que le comportement semble similaire sur le serveur en production (OracleAS donc) et chez moi en debug (sur un bête Tomcat).

    Il n'y a pas de problème de ressources, lorsque j'analyse les requêtes, pour toutes les requêtes et ce depuis le début de mon test et le passage des pages précédant celle qui "bug", je n'ai que des 200 OK comme statuts.

    De ma connaissance nous ne passons effectivement pas sur les applications en direct mais par un WebCache, je vais donc me renseigner sur ce point là, mais vu que je reproduis le bug sur un Tomcat chez moi, le problème ne vient probablement pas de là (je n'ai pas de proxy sur mon propre poste...)

    Si vous avez d'autres idées...
    Linio

  6. #6
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    un bug dans ton code, je ne vois plus que ça.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  7. #7
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    un bug dans ton code, je ne vois plus que ça.
    Un bug sur un code qui marche depuis un moment et qui marche aussi sur un autre browser ça me semble un peu ... étonnant. C'est pas comme s'il y avait des if (firefox) et if(ie) dans le programme java... m'enfin merci quand même...
    Linio

  8. #8
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    les sessions, c'est qqch qui marche très bien en JAVA, qqsoit le navigateur, donc y'a forcément un problème qqpart, et l'endroit le plus probable est ton application (code, configuration, etc.)

    est-ce que tu peux m'envoyer ton application pour que je regarde ?
    je te donne mon mail en MP si tu veux.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  9. #9
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Je poste ma réponse ici vu que ta boite MP est pleine :

    Bonjour,

    C'est très gentil de vouloir m'aider, malheureusement c'est une appli professionnelle que je ne peux certainement pas envoyer au petit vent

    Qui plus est vu la tête des bases de données, et de tous les trucs pour initialiser celle ci derrière tu aurais du mal je pense à reproduire le comportement exact dans le cas précis où je suis. Je vais essayer de faire un programme de test plus soft et voir si j'arrive à reproduire le comportement, je te tiens au courant.

    Merci en tout cas!
    Linio

Discussions similaires

  1. DNS différent selon le navigateur? Possible?
    Par Antoine_r dans le forum Hébergement
    Réponses: 3
    Dernier message: 16/08/2013, 17h43
  2. position <div> différente selon le navigateur
    Par bilobar dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/06/2012, 19h51
  3. [SP-2007] Droits différents selon le navigateur
    Par Sash ça crashe dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 21/12/2010, 21h47
  4. affichage différent selon les navigateurs
    Par mikesquake dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 09/09/2010, 19h19
  5. Margin-left différent selon les navigateurs (IE et FF)
    Par snyfir dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 14/04/2008, 21h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo