2009-05-08 4 views
1

J'ai une application Web basée sur la technologie Java Servlet. Je pense à passer à un nouveau framework, en basculant éventuellement vers une pile .NET avec C# et ASP MVC. Je ne veux pas prendre l'application actuelle pendant que je développe la nouvelle. L'objectif est de faire fonctionner l'ancien système et de développer de nouveaux modules dans une nouvelle architecture.Comment transférer des informations de session entre Java/Servlet et .NET?

Si je reste avec une pile Java, je pense que c'est simplement une question de mappage de servlet. Cependant, si je passe à une pile .NET, je devrai transférer des sessions entre les deux systèmes. Est-ce faisable d'une manière facile? Devrais-je utiliser quelque chose comme SOAP?

Quelqu'un a-t-il de l'expérience dans ce domaine?

Merci

Répondre

3

Pas de savon. C'est simple:

1) assurez-vous que votre application Web Java utilise un mécanisme client (navigateur) pour le suivi des sessions. (Cookies, encodage d'URL, etc.)

2) Si vous mettez des objets Java complexes dans vos sessions en cours, faites les changements nécessaires pour qu'ils soient réduits à (efficacement) un dictionnaire clé/valeur.

3) Configuration d'un système externe (un DB par exemple) pour stocker les données de session clé/valeur en fonction de l'identifiant de session de (1)

4) Vous ne plus utiliser le mécanisme de la session Servlet. Au lieu de cela, vous devrez écrire le gestionnaire de session de base qui retourne une carte pour un identifiant de session donné.

- sur le Vous êtes toujours .NET/Python/Woof côté

5) identifierez sessions en utilisant le même conteneur mécanisme invariante (1)

6) Vous devrez dupliquer le gestionnaire de session (4) pour votre conteneur .NET. Avez-vous choisi un RDBM pour (3)? Ensuite, ce n'est rien de plus qu'une requête à la même base de données en utilisant la même clé de session.

7) vous utilisez maintenant différentes pages pour la même application en utilisant 2 conteneurs différents.

2

Utilisent-ils le même DB? Enregistrez simplement les informations d'enregistrement de session dans un enregistrement de table de base de données et transmettez l'identifiant de l'enregistrement entre les deux systèmes.

1

Je pense que le meilleur moyen serait de mettre en œuvre des fournisseurs de session personnalisés sur les deux systèmes, afin de stocker les données de session dans une base de données commune. Cela est possible dans .NET, et je suppose qu'il est également possible dans Java ...

Vous devriez jeter un coup d'oeil à cette page, qui explique comment implémenter un fournisseur de banque d'états de session personnalisé dans .NET: http://msdn.microsoft.com/en-us/library/ms178587.aspx est un exemple d'implémentation dans VB.NET (voir le lien au bas de la page)

Questions connexes