Thanks for your help.

Do you how to do this including session in SOAP Message independent http transport protocol. Client which invoke web services can be java, net, workflow and transport protocol can be another than http.
I have read it is possible but in fact it does not work.



----- Original Message ----- From: "Tom Ziemer" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, September 08, 2005 3:20 PM
Subject: Re: Fw: Problem with session management


Hi,

I had the same problem and I asked the same question on this list. AFAIK, there is no "clean" solution - what I did eventually was something like this:

Call 1 (serviceA), via stub: String sessionId = xxxStub._getCall().getMessageContext().getProperty(HTTPConstants.HEADER_COOKIE);

Call 2 (serviceB), via stub: yyyStub()._setProperty(HTTPConstants.HEADER_COOKIE, sessionId);

Not very nice, but it works.

Hope this helps,
Regards,
Tom

Jesús Daniel Blázquez Carazo wrote:
I think problem I have is because AxisEngine is distinct in each call to web service and the information of this is in MessageContext. Someone knows how can I do MessageContext contains the same AxisEngine in two call to web services? I want to call two web services: the first call contains in response session_id and this session_id will be passed in the second call request.
 ----- Original Message -----
*From:* Jesús Daniel Blázquez Carazo <mailto:[EMAIL PROTECTED]>
*To:* [email protected] <mailto:[email protected]> ; [email protected] <mailto:[email protected]>
*Sent:* Wednesday, September 07, 2005 1:30 PM
*Subject:* Problem with session management

I am trying to session management using a servlet client on jboss server.
 The deploy.wsdd in server
 <?xml version="1.0" encoding="UTF-8"?>

<deployment

name="TerregovService"

xmlns="http://xml.apache.org/axis/wsdd/";

targetNamespace="http://localhost:8080/TerregovService";

xmlns:trights="http://localhost:8080/TerregovService";

xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

<service name="Rights" provider="Handler">

<parameter name="handlerClass" value="org.apache.axis.providers.java.EJBProvider"/>

<parameter name="beanJndiName" value="RightsBeanLocal"/>

<parameter name="homeInterfaceName" value="org.terregov.dram.WebService.interfaces.RightsBeanLocalHome"/>

<parameter name="localInterfaceName" value="org.terregov.dram.WebService.interfaces.RightsBeanLocal"/>

<parameter name="allowedMethods" value="checkRights getUser"/>

<requestFlow name="RightsRequest">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="RightsResponse">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

</service>

<service name="Authentication" provider="Handler">

<parameter name="handlerClass" value="org.apache.axis.providers.java.EJBProvider"/>

<parameter name="beanJndiName" value="AuthenticationBeanLocal"/>

<parameter name="homeInterfaceName" value="org.terregov.dram.WebService.interfaces.AuthenticationBeanLocalHome"/>

<parameter name="localInterfaceName" value="org.terregov.dram.WebService.interfaces.AuthenticationBeanLocal"/>

<parameter name="allowedMethods" value="challengeRequestX509 challengeValidationX509 loginValidation challengeRequest challengeValidation "/>

<requestFlow name="AuthenticationRequest">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="AuthenticationResponse">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

</service>

<service name="CAServices" provider="Handler">

<parameter name="handlerClass" value="org.apache.axis.providers.java.EJBProvider"/>

<parameter name="beanJndiName" value="CAServicesBeanLocal"/>

<parameter name="homeInterfaceName" value="org.terregov.dram.WebService.interfaces.CAServicesBeanLocalHome"/>

<parameter name="localInterfaceName" value="org.terregov.dram.WebService.interfaces.CAServicesBeanLocal"/>

<parameter name="allowedMethods" value="requestNewUser requestCertificate getCRL getPublicKey revokeCertificate searchCertificate updateCertRequest "/>

<requestFlow name="CAServices">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="CAServices">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

</service>

</deployment>

and works well because in SOAP header contains session value, but the client does not put session value in SOAP request.

The client.wsdd is generated automatically with org.apache.axis.utils.Admin client deploy.wsdd:

 <?xml version="1.0" encoding="UTF-8"?>

<deployment xmlns="http://xml.apache.org/axis/wsdd/"; xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>

<globalConfiguration>

<parameter name="adminPassword" value="admin"/>

<parameter name="enableNamespacePrefixOptimization" value="true"/>

<parameter name="disablePrettyXML" value="true"/>

<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>

<parameter name="sendXsiTypes" value="true"/>

<parameter name="sendMultiRefs" value="true"/>

<parameter name="sendXMLDeclaration" value="true"/>

</globalConfiguration>

<requestFlow name="RightsRequest">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="AuthenticationResponse">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

<responseFlow name="RightsResponse">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

<requestFlow name="AuthenticationRequest">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<responseFlow name="CAServices">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

<service name="Rights" provider="Handler">

<requestFlow name="RightsRequest">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="RightsResponse">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

<parameter name="allowedMethods" value="checkRights getUser"/>

<parameter name="localInterfaceName" value="org.terregov.dram.WebService.interfaces.RightsBeanLocal"/>

<parameter name="handlerClass" value="org.apache.axis.providers.java.EJBProvider"/>

<parameter name="beanJndiName" value="RightsBeanLocal"/>

<parameter name="homeInterfaceName" value="org.terregov.dram.WebService.interfaces.RightsBeanLocalHome"/>

</service>

<service name="CAServices" provider="Handler">

<requestFlow name="CAServices">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="CAServices">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

<parameter name="allowedMethods" value="requestNewUser requestCertificate getCRL getPublicKey revokeCertificate searchCertificate updateCertRequest "/>

<parameter name="localInterfaceName" value="org.terregov.dram.WebService.interfaces.CAServicesBeanLocal"/>

<parameter name="handlerClass" value="org.apache.axis.providers.java.EJBProvider"/>

<parameter name="beanJndiName" value="CAServicesBeanLocal"/>

<parameter name="homeInterfaceName" value="org.terregov.dram.WebService.interfaces.CAServicesBeanLocalHome"/>

</service>

<service name="Authentication" provider="Handler">

<requestFlow name="AuthenticationRequest">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</requestFlow>

<responseFlow name="AuthenticationResponse">

<handler name="session" type="java:org.apache.axis.handlers.SimpleSessionHandler"/>

<handler type="soapmonitor"/>

</responseFlow>

<parameter name="allowedMethods" value="challengeRequestX509 challengeValidationX509 loginValidation challengeRequest challengeValidation "/>

<parameter name="localInterfaceName" value="org.terregov.dram.WebService.interfaces.AuthenticationBeanLocal"/>

<parameter name="handlerClass" value="org.apache.axis.providers.java.EJBProvider"/>

<parameter name="beanJndiName" value="AuthenticationBeanLocal"/>

<parameter name="homeInterfaceName" value="org.terregov.dram.WebService.interfaces.AuthenticationBeanLocalHome"/>

</service>

<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>

<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>

<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>

</deployment>

My question is: It's enough with this or it is necesary to do something more?

My client invoke stub generated with WSLD2Java classes. I think is a problem with AxisEngine configuration in client part but I do not know sure.

Thanks for your future answers.


Reply via email to