axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject RE: session management problem
Date Mon, 23 Aug 2004 15:38:54 GMT
I am confused by your last statement 
>> when I call another Service with the same AXISSession there will be a new
HTTPSession generated 
Can you elaborate on what you mean here?  I am not certain I completely
follow but I think your issue is the application server session id.  My
assumption here is that you may need to utilize the cookie session
management instead of the soap header session management.  If you use
cookies then the session id cookie created by the app server (httpsession)
should match your axissession.  You may also want to look into the session
listener that axis uses.

-----Original Message-----
From: Dorner Thomas [] 
Sent: Sunday, August 22, 2004 11:58 PM
Subject: AW: session management problem

Hello marcus,


thanks for reply - but you dont understand my problem - or I havent explain
it will enough.


What you are doing is the right solution I think - we do it the same way
since a long time.


But we use the sessionID behind the WebServices for a usermanagement.

Our Subjects for every user are identivid by the sessionID.

So when the session will be destroyed by a timeout, I need a notification!

--> for destroying my Subject too!!!


But I don't know a way to do this.


When a AXISSession is generated there is also parallel HTTPSession

And with the HTTPSession I am able to solve my problem.

The realy bad thing is - when I call another Service with the

same AXISSession there will be a new HTTPSession generated :-(


Some IDEA ?


Thanks Tomi



Von: [] 
Gesendet: Sonntag, 22. August 2004 00:51
Betreff: RE: session management problem


I encountered the same issue where we have multiple service endpoint classes
that need to be utilized in a single client session

on theserver and the services need to share information in the session.  The
way I solved this problem was to add a factory class in front of the

client stubs.  The factory stores the session id (retrieved after first
service request) and sets the session id into the client service stubs 

before returning it for use.


This is done by getting and setting the session id in the client axis engine
options collection.


This same approach was used in our java and .net clients.


I am not sure that this is the best approach but it did accomplish our goal.




-----Original Message-----
From: Dorner Thomas [] 
Sent: Friday, August 20, 2004 8:43 AM
Subject: AW: session management problem

Thank you for your quick reply,


I do it the same way you post in your Email.


As long as you use only one WebService with a generated AXIS-Session,

there is no problem - so u have also only one HttpSession (HTTPSession =
AXISSession) !


And we can use the AxisHTTPSessionListener!


But when I want to use one AXISSession over different Webservices, I got a
HTTPSession for every WebService

I call.


Have someone a solution for such an usecase?

Can someone please give me tip - how I can solve this problem??? 


Thanks in advance for help




Von: Wagle, Shriniwas [] 
Gesendet: Freitag, 20. August 2004 16:31
Betreff: RE: session management problem


I haven't tried it, but if I had a need I'd try something like this:

- Start with the message context and go on from there.  Something like..


msgC = MessageContext.getCurrentContext();

>From this point on, you should be able to do the usual stuff.  Also take a
look at Axis API docs.



From: Dorner Thomas [] 
Sent: Friday, August 20, 2004 10:09 AM
Subject: session management problem



I use Apache Axis sessions (SOAP-Haeder based) and I need to know when a
session was destroyed, but I can't find a session timeout notifying
mechanism for axis.

Does anybody have any idea?


Hope somebody can give me a tip :-(


There is a similar solution for standard servlets based on
HttpSessionBindingListener :





import java.util.*;

import java.lang.*;

import javax.servlet.*;

import javax.servlet.http.*;


public class TestSessionServer extends HttpServlet


public void doGet(HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException



PrintWriter out = res.getWriter();

String command = req.getParameter("command");

HttpSession session = req.getSession(true);


session.setAttribute("SessionObjName", new SessionTimeoutNotifier());

System.out.println("The command you typed was : "+command);

out.println("You typed : "+command);

out.println("Your session id is : "+session.getId());

} // End of doGet method



class SessionTimeoutNotifier implements HttpSessionBindingListener





public void valueBound(HttpSessionBindingEvent event)


System.out.println("The session has started : "+event.getSession().getId());



public void valueUnbound(HttpSessionBindingEvent event)


System.out.println("The session has ended : "+event.getSession().getId());





Thanks Thomas


View raw message