Bonjour,
Voici mon problème :
Suite aux exigences client, j'ai besoin de faire 2 Web Service en JAVA.
Le premier est un web service "générique" qui remonte toutes les informations.
Le deuxième est un Web Service "Métier" qui permet de filtrer certaines informations
Le premier Web Service ("générique") fonctionne très bien. Lorsque j'utilise un client JSP, une session correspond bien à une instance du web service "générique".
Lorsque je passe par le deuxième Web Service pour interroger les méthode du premier, il y a bien une session qui se créer entre les deux. Cependant, a chaque appel de méthode du premier Web Service au travers du deuxième web service, une nouvelle instance du web service "générique" se crée.
Dans mes descripteurs de déploiements (deploy.wsdd), le paramètre <parameter name="scope" value="session"/> est bien présent.
J'ai également utiliser un filtre sur le Web Service "générique" pour voir si les sessions et cookies existaient. Les session et les cookies existent bien et ils ne sont pas recréés pour les appels d'un même client.
De ce fait, dans la classe SoapBindingStub du web service "métier", j'ai bien les lignes suivantes :
- pour le première méthode appelée :
_call.setProperty(HTTPConstants.HEADER_SET_COOKIE, Boolean.TRUE);
- pour chaque méthode appelée :
_call.setProperty(org.apache.axis.client.Call.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
_call.setProperty(HTTPConstants.HEADER_CONNECTION_KEEPALIVE, Boolean.TRUE);
- à la création du Call :
super.maintainSession = true;
super.maintainSessionSet = true;
La communication entre les deux Web Service fonctionne correctement car, j'ai bien le retour souhaité de la première web méthode appelée.
Pourriez-vous éclairer ma lanterne quand à ce problème de relation entre l'instance et la session créé.
En vous remerciant par avance.
Serveur d'application : TOMCAT 5.5.27
EDI : Eclipse Ganymede 3.4.2
FrameWork : AXIS 1.4
JRE : 6
JDK : 1.6
Partager