2017-05-17 3 views
0

Je ne suis donc pas entièrement sûr de savoir comment formuler cette question pour la poser correctement. Je vais simplement noter ce que je connais de la situation, des exigences et des idées pour peindre l'image.Données de session entre les servlets dans un cluster

J'ai deux servlets: l'une est une servlet grails 2.1.1 et l'autre est une servlet Spring Webflow. J'ai été chargé d'insérer une iframe de la servlet grails dans une page sur le servlet Spring Webflow. Le problème que j'ai bien sûr soulevé était celui des données de session. Les servlets sont déployés sur tomcat sur le même serveur mais il y a 3 serveurs dans le cluster (les 3 serveurs ont les deux servlets). Les sessions collantes sont activées. Ma question est la suivante: vais-je même pouvoir partager des données de session entre les deux servlets? J'imagine qu'un iframe produirait un nouvel identifiant de session pour l'application Grails. Si je peux partager des données entre les deux servlets, comment cela sera-t-il accompli? En utilisant les fonctions typiques getAttribute/setAttribute?

Merci pour votre avis!

+0

Pourquoi n'utilisez-vous pas les services Web? – Armaiti

+0

L'idée était d'ajouter la forme de l'application Grails à l'application de flux Web existante. Je suis en train d'étudier l'utilisation des services Web, car cela réduirait considérablement la complexité. Merci pour la contribution et la garantie que les services Web sont un moyen bien plus sain d'aller. – Mike

Répondre

0

Dans votre configuration, vous ne pouvez pas partager directement les données entre différentes sessions tomcat. Vous avez 2 options:

  1. Utilisez un support entre vos matous pour les données de partage et d'échange, comme base de données ou d'un cache en mémoire.

  2. Envoyez directement toutes les données que vous souhaitez dans une requête http.

+0

Merci pour la clarification. La mise en cache de mémoire semble être un peu un marteau pour une noix compte tenu de la portée du projet. Option 2 (sous la forme d'un service reposant comme indiqué par @Armaiti) est ce que je suis allé avec. Pour protéger les éléments sensibles, jasypt a été utilisé pour masquer les données. – Mike