On 1/23/2011 7:11 AM, am am wrote:
> I am starting on axis2 (1.5.4).
> I am looking into the various session scopes for web services
> (request, soapsession etc).
> By experimenting, I notice that in all scopes except the application
> scope, there is a new instance of my web service being created per
> service call.
> Only by setting the scope to "application" in the services.xml, the
> web service is instantiated only once, and being re-used across all
> web service calls.
> My testing for this, was actually a print statement in the web service
> constructor. The constructor was called for scope="request" or
> scope="soapsession" or scope="transportsession" for each ws call.
> So my question is the following: Is this the case in axis2? And if
> yes, for non-trivial web services, isn't it very costly (to
> re-instantiate per service call)?
> Is the recommended approach to use application scope services? Or my
> understanding is wrong here?
Nope, this is not the way Axis2 does the session. As I can see you have
not send session related information to manage the session. For example,
when you use soapsession you need to send the session ID, which you can 
do simply by engaging addressing module to both client and server side
and setting the setManageSession(true) in the option object. Similarly,
when you use transport session you are required to send the cookies,
which can also done by setting the above property. For the request
session, it creates service instance for each invocation.

Deepal
>
> Thank you!
>
>
>
>

Reply via email to