axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Ewins <Brian.Ew...@btinternet.com>
Subject Re: Maintain Session with .NET and AXIS
Date Sun, 16 Mar 2003 16:15:49 GMT
You don't need to edit the stub. When you get the stub back from the 
locator you do

((org.apache.axis.client.Stub)stub).setProperty(org.apache.axis.client.Stub.SESSION_MAINTAIN_PROPERTY,

Boolean.TRUE)

If you look at the code that you edited in the stub you should find the 
bit checking this property and setting MaintainSession on the call.

The session is per-stub, thus you can't share session across multiple 
instances of a stub, nor can you share session across multiple stubs 
generated from different WSDL. At least, not without major hacking.


Sateesh Ayyagari wrote:
> Hi Thomas,
> 
>    I am first working on the Cookie-based session maintainance.  I could 
> get it to work with the .NET client and a Java Web Service.  But I have 
> problem to get the Java client and the .NET Web Service to work.  I ran 
> the WSDL2Java to get the stubs and tried to modify the code in the 
> stub.  My simple .NET web service has a setNumber and a getNumber as web 
> methods.  The modification I did to the stub is to use a single "Call" 
> object reference to both the set and get web methods and did a 
> call.setMaintainSession(true), when I am calling the set method and used 
> the same call for get.  Interestingly the SOAP request for the get 
> method is using the same session id which was set during the SOAP 
> response of the set method, but my value is displayed as "0" 
> irrespective of what number I set.  Could you give me some hints as to 
> why it is doing like this.  If the above method is incorrect, could you 
> kindly suggest a better one.
> 
> Sateesh.
> 
>  */thomas.cherel@ascentialsoftware.com/* wrote:
> 
>     I will need to get back to the code that I have to make it work with
>     the latest Axis version, but here is the modification that I did to
>     the SimpleSessionHandler.java to wrapped the session id into a type.
>     I recall (it was a while ago), that this is all I had to do (beside
>     adding it to the Axis handler chain of course), to have it handled
>     completely transparently in the code generated by VS Studio .NET C#
>     when importing my web service reference. Actually there was
>     something else to do: customize the service WSDL to contain the
>     right SOAP header definition.
> 
>     You can find enclosed the modified (and renamed)
>     SimpleSessionHandler and the WSDL to give you and idea of what I did.
> 
>     Sorry I can not give more details than that as I did that some times
>     ago.
> 
>      
> 
>     Thomas
> 
>      
> 
>      
> 
>     -----Original Message-----
>     *From:* Jindal, Ashwini [mailto:ajindal@ebay.com]
>     *Sent:* Thursday, March 13, 2003 12:28 PM
>     *To:* 'axis-user@ws.apache.org'
>     *Subject:* RE: Maintain Session with .NET and AXIS
> 
>      
> 
>     Hello Thomas,
> 
>      
> 
>     I have a very similar problem that I am currently working with. I am
>     wondering if you have the code for the following solution that you
>     suggested and if you can share the same.
> 
>      
> 
>     Ashwini
> 
>         -----Original Message-----
>         *From:* thomas.cherel@ascentialsoftware.com
>         [mailto:thomas.cherel@ascentialsoftware.com]
>         *Sent:* Wednesday, March 12, 2003 10:11 PM
>         *To:* axis-user@ws.apache.org
>         *Subject:* RE: Maintain Session with .NET and AXIS
> 
>         With cookies, the session id is sent between the client and the
>         server in the HTTP headers, meaning that it is bound to the
>         transport protocol. Change the protocol (for example, use JMS)
>         and it does not work anymore.
> 
>         If you look at the SOAP specification (from w3c.org), a SOAP
>         message is composed of a SOAP body (the content of the message)
>         but also of SOAP Headers which can be used for session
>         management (for example) in a transport independent way. In
>         simple term, what you put in the http header when using cookies,
>         you now put it in the SOAP header.
> 
>         Yes, it means a little more programming on your side as SOAP
>         tools (client and server) do not necessarily handle SOAP headers
>         in a complete transparent manner but it might be worth paying
>         the cost if you are considering using other transport that just
>         HTTP.
> 
>         Take a look at
>         org/apache/axis/handlers/SimpleSessionHandler.java which is a
>         very good start to do SOAP header based session handling (for
>         simple session handling, it can be used as is). The last time I
>         played with that I had to slightly modify it to wrap the
>         sessionID into a complex type so a C# .NET client can handle it
>         in a complete transparent manner.
> 
>          
> 
>         Thomas
> 
>          
> 
>         -----Original Message-----
>         *From:* Sateesh Ayyagari [mailto:ayyasat@yahoo.com]
>         *Sent:* Wednesday, March 12, 2003 1:30 PM
>         *To:* axis-user@ws.apache.org
>         *Subject:* RE: Maintain Session with .NET and AXIS
> 
>          
> 
>         Hi Thomas,
> 
>            I read the mailing list and found your reply to "Stateful Web
>         Services" stating that the SOAP header solution to maintaining
>         state would be the right approach rather than the Cookie-based
>         approach.  I could maintain session and application scope using
>         the HTTP cookies set on the client side and session/application
>         scope on the server side.  Could you kindly explain in detail
>         the Header-based approach?
> 
>         Sateesh.
> 
>          */thomas.cherel@ascentialsoftware.com/* wrote:
> 
>             If you are using Axis for your web service, setting the
>             scope to session will turn cookie handling on from the
>             server side point of view (Axis will use the HTTPSession
>             features of the servlet container). On the C# client side,
>             you have to create the cookie container for your service
>             object to turn cookie on as well, and that is it, no need
>             for anything else.
> 
>             If you do a couple of searches in the mailing list archive
>             you will find more details on all that for sure.
> 
>              
> 
>             Thomas
> 
>              
> 
>             -----Original Message-----
>             *From:* Sateesh Ayyagari [mailto:ayyasat@yahoo.com]
>             *Sent:* Monday, February 10, 2003 1:57 PM
>             *To:* axis-user@ws.apache.org
>             *Subject:* Maintain Session with .NET and AXIS
> 
>              
> 
>             Hi,
> 
>                I have a question regarding maintaining session.  How do
>             we maintain session for a Java Web Service which is consumed
>             by a C# client?  Any links would be appreciated.
> 
>             Sateesh.
> 
>              
> 
>             ------------------------------------------------------------------------
> 
>             Do you Yahoo!?
>             Yahoo! Mail Plus
>             <http://rd.yahoo.com/mail/mailsig/*http:/mailplus.yahoo.com>
>             - Powerful. Affordable. Sign up now
>             <http://rd.yahoo.com/mail/mailsig/*http:/mailplus.yahoo.com>
> 
>          
> 
>         ------------------------------------------------------------------------
> 
>         Do you Yahoo!?
>         Yahoo! Web Hosting <http://webhosting.yahoo.com/ps/wh3/prod/> -
>         establish your business online
> 
>      > ATTACHMENT part 2 application/octet-stream
>     name=SessionHandler.java > ATTACHMENT part 3
>     application/octet-stream name=MyService.wsdl 
> 
> 
> ------------------------------------------------------------------------
> Do you Yahoo!?
> Yahoo! Web Hosting 
> <http://rd.yahoo.com/webhosting/mail_tagline/evt=7748/*http://webhosting.yahoo.com/ps/wh3/prod/>

> - establish your business online


Mime
View raw message