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

Tomcat et TomEE Java Discussion :

partage de session entre webapp


Sujet :

Tomcat et TomEE Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut partage de session entre webapp
    Je cherche a partager une session entre 2 webapp hébergée par une même instance TOMCAT (une JVM).
    Les webapp sont déclarées dans server.xml avec des context différents.
    J'ai pensé a une solution : placer une singleton contenant une Hahmap dans les shared/lib de TOMCAT et indexer mes informations avec l'identifiant de session. Ca doit marcher dans la mesure ou il s'agit du même class loader mais je trouve ca un peu lourd sans compter des risques de fuites mémoire si je ne code pas proprement.

    Y a t il une solution plus simple ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 145
    Points : 125
    Points
    125
    Par défaut
    Si les informations en session sont peu nombreuses, tu peux envisager l'utilisation d'un cookie pour stocker ces infos.
    Sinon, tu peux stocker les informations en base de données ou dans un fichier mais cela consomme beaucoup de temps pour lire ou mettre à jour ces infos.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Merci pour cette réponse
    Citation Envoyé par mat360
    Si les informations en session sont peu nombreuses, tu peux envisager l'utilisation d'un cookie pour stocker ces infos.
    Sinon, tu peux stocker les informations en base de données ou dans un fichier mais cela consomme beaucoup de temps pour lire ou mettre à jour ces infos.
    Oui d'ailleurs c'est pour cette raison qu'on utilise la session : pour éviter de relire en base a chaque requète... Quand a utiliser un cookie, pas possible c'est vraiment trop volumineux.
    PLus je réfléchis plus je trouve l'idée d'utiliser TOMCAT_HOME/shared/lib fumeuse. Ca risque bien de ne pas fonctionner... Je vais quand même tenter... Peut être que la seule solution serait d'utiliser la sérialisation voire RMI mais ca me parait incroyable d'en arriver la pour des infos qui sont dans la même JVM et la sérialisation d'objets est parfois très lente....

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 145
    Points : 125
    Points
    125
    Par défaut
    sinon, il y a peut-être une autre possibilité. Tu peux partager le contexte entre 2 webapps (cf. http://java.developpez.com/faq/javae...ARTAGE_CONTEXT)

    Tu peux stocker des attributs dans ce contexte. Donc tu peux stocker tes données de session dans un attribut du contexte avec une clé genre nomWebapp.IdSession.

    A voir si c'est une bonne solution en pratique

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par mat360
    Tu peux stocker des attributs dans ce contexte. Donc tu peux stocker tes données de session dans un attribut du contexte avec une clé genre nomWebapp.IdSession.

    A voir si c'est une bonne solution en pratique
    En tout cas c'est une piste, je vais essayer ca, merci.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jluc35
    En tout cas c'est une piste, je vais essayer ca, merci.
    Ca marche mais il faut que les classes des objets partagés soient en shared lib et il y a un problème de nettoyage des objets en fin de session des deux webapps, problème qu'une notion de "session partagée" aurait pu gérer.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    le solution complète est décrite sur ce lien :
    http://www.fwd.at/tomcat/sharing-ses...ata-howto.html

Discussions similaires

  1. [PHP 5.4] Partager les sessions entre 2 virtual host
    Par wbulot dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2014, 10h23
  2. [2.x] Partage de session entre deux applications
    Par eluus dans le forum Symfony
    Réponses: 10
    Dernier message: 02/09/2014, 10h48
  3. [Resin] Partage de sessions entre webapps
    Par Traroth2 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 24/11/2008, 06h52
  4. [Sessions] Partage de sessions entre PHP et ASP.NET
    Par tomlev dans le forum ASP.NET
    Réponses: 4
    Dernier message: 09/11/2008, 15h41
  5. Réponses: 1
    Dernier message: 05/03/2008, 23h19

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