axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joan Pont" <jp...@nortelnetworks.com>
Subject RE: Bug#: 11815 ServiceLifecycle.destroy() never called when sess ion is destroyed
Date Mon, 01 Dec 2003 16:21:52 GMT
Hi Glen,

	I've built the *.jar files with the latest CVS version. I've copied
them from the /build/lib directory to tomcat's lib directory (that's on the
classpath for Axis) from a previously installed Axis version1.1
	I've changed the web.xml file (got it from CVS).
	Is there anything else that should be done?

	Could you please tell me which ones are the java files and the
config files that must be replaced?  So I can patch the release Version Axis
1.1, instead of building a new one.

	At the moment I get the init called every time there is a new client
connecting for the fist time but I don't get calls to finalize/destroy (see
the XlmServerServiceBindingImpl.java below.
	Any ideas? 
	I've got a session enabled client -based on cookies- that sends
multiple requests and then terminates. I've waited for more than the 5
minutes session timeout. 	
	I don't even get calls to finalize when I shutdown TOMCAT.

	I get the following in the Catalina.out 
WebappClassLoader:
validateJarFile(/mdn05/gembuild/3rdparty/jakarta-tomcat-4.0/jakarta-tomcat-4
.1.27/webapps/axis/WEB-INF/lib/servlet.jar) - jar not loaded. See Servlet
Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

	Is it a problem?

	In the deployment descriptor of I've got Session scope.
	The ServiceBindingImpl is as follows:

/**
 * XlmServerServiceBindingImpl.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis WSDL2Java emitter.
 */

package com.nortelnetworks.gem18pi;

import java.rmi.Remote;
import java.rmi.Remote.*;
import javax.xml.rpc.server.ServiceLifecycle;
import javax.xml.rpc.server.ServletEndpointContext;
import javax.xml.rpc.handler.soap.SOAPMessageContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.*;
import java.security.Principal;
import javax.xml.rpc.handler.*;
import javax.xml.rpc.Call;
import org.apache.commons.logging.Log;
import org.apache.axis.components.logger.LogFactory;
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
    

public class XlmServerServiceBindingImpl implements
com.nortelnetworks.gem18pi.XlmServerServicePortType, ServiceLifecycle{
    private ServletEndpointContext serviceContext;
    private static Log log =
LogFactory.getLog(XlmServerServiceBindingImpl.class.getName());

    public void init (java.lang.Object context) {
      serviceContext= (ServletEndpointContext) context; 
      log.info("XlmServerServiceBindingImpl: Init called, service context"+
toString());
      BasicConfigurator.configure();

    public void destroy () {
      log.info("XlmServerServiceBindingImpl: destroy called");
    }
    public void finalize () {
      log.info("XlmServerServiceBindingImpl: finalize called");
    }
}

Thank you very much for your help!
Joan.	
	


-----Original Message-----
From: Glen Daniels [mailto:glen@thoughtcraft.com] 
Sent: 29 November 2003 06:45
To: axis-dev@ws.apache.org
Subject: Re: Bug#: 11815 ServiceLifecycle.destroy() never called when
session is destroyed

Hi folks:

Sorry, just tuning in to this thread.  Um, this problem has actually already
been fixed.  The AxisHttpSessionListener is checked in, correctly dispatches
session destroy events to any session-controlled object which implements
ServiceLifecycle, and the appropriate changes have been made to the default
web.xml.  This stuff is all in the current CVS.

Have you tried out the CVS version, Joan?  If something isn't working for
you, we'd like to know about it.

Thanks,
--Glen

----- Original Message ----- 
From: "Joan Pont" <jpont@nortelnetworks.com>
To: <axis-dev@ws.apache.org>
Sent: Friday, November 28, 2003 12:52 PM
Subject: RE: Bug#: 11815 ServiceLifecycle.destroy() never called when
session is destroyed


> Steve,
> Sorry, I'm quite new in Axis. At the moment I'm just evaluating it
> to be able to see if we can use it in our product.
> And for us it is essential to know or to be notified when a session
> has terminated - the client leaves or the connection drops.
>
> Could you provide more details on how to do what you mention below?
>
> The appropriate listener is in transports.http, it just needs to be
> wired in and tested. That's right: tested. Think of a good service tha
> can test that sessions are cleaned up and then implement it and the
> client side stuff.
>
> I suppose that you are referring to class HttpMessageExchange in
> org.apache.axis.ime.internal.transports.http
> Perhaps I'm being blind here, but I don't see how to be notified of
> session lifecycle events here. How should I implement the Interface
> MessageExchangeEvent?
> I've got a service running now and I would be able to test that with
> session enabled clients.
>
> As well, if possible we'd like something that is not completely Axis
> specific.
> Would it be possible to do the same with the Axis implementation of
> the standard JAX-RPC? (I getting the ServiceLifecycle working seems
> important)
>
> Please detailed help of how to achieve that would be really
> appreciated.
>
> Thanks again.
> Joan.
>
>
> -----Original Message-----
> From: Steve Loughran [mailto:steve_l@iseran.com]
> Sent: 27 November 2003 20:16
> To: axis-dev@ws.apache.org
> Subject: Re: Bug#: 11815 ServiceLifecycle.destroy() never called when ses
> sion is destroyed
>
> Joan Pont wrote:
>
> > Thanks Steve,
> >         Could you please explain in more detail your paragraph?
> >
> > as axis 1.2 is servlet2.3+, we dont need the housekeeping, we can use
> > servlet lifecycle events, we just need someone to write the code and
> > web.xml changes to do this.
> >
> >         Does it mean that with Axis 1.2 if the user implements the code
> > for servlet lifecycle event it will correctly call the
> > sessionCreated/sessionDestroyed? How will this be done?
>
>
> The appropriate listener is in transports.http, it just needs to be
> wired in and tested. That's right: tested. Think of a good service tha
> can test that sessions are cleaned up and then implement it and the
> client side stuff.
>
> >
> >
> >         Is there another way around so I can free session allocated
> > resources when the session terminates from my
> > MyServiceServiceBindingImpl class that is auto-generated by the Axis
> > WSDL2Java emitter?
> >
> >         When will axis 1.2 be out?
>
> when it is ready. It goes into alpha soonish. But dont expect Axis1.2 to
> meet your needs without help: in the open source world, you have to help
> to get products where you want them to be.
>
> > Thanks,
> > Joan.
> >
> >
> > -----Original Message-----
> > From: Steve Loughran [mailto:steve_l@iseran.com]
> > Sent: 26 November 2003 22:58
> > To: Pont, Joan [MOP:GM12:EXCH]
> > Cc: 'gdaniels@apache.org'; 'stevel@apache.org'; 'st946tbf@drexel.edu'
> > Subject: Re: Bug#: 11815 ServiceLifecycle.destroy() never called when
> > session is destroyed
> >
> > Joan Pont
> >  > Hi,
> >  >         I've seen the problem with the ServiceLifecycle.destroy()
never
> >  > being called when session is destroyed has been fixed.
> >  >
> >  >         Is it possible to obtain the source code for that fix? Which
> >  > ones are the files involved?
> >  >         Is there another way around so I can free session allocated
> >  > resources when the session terminates from my
> >  > MyServiceServiceBindingImpl class that is auto-generated by the Axis
> >  > WSDL2Java emitter?
> >  >
> >  >         I need to know/be notified when a session has been terminated
> >  > within the Axis code.
> >  > Many thanks,
> >  > Joan.
> >  >
> >
> > I dont think a fix for this exists; I havent written a complete one,
> > though had some old housekeeping code that could be used to trigger
> > cleanup.
> >
> > as axis 1.2 is servlet2.3+, we dont need the housekeeping, we can use
> > servlet lifecycle events, we just need someone to write the code and
> > web.xml changes to do this.
> >
> > which is where, in the open source world, you come in.
> >
> > I would recommend you get on the Axis dev mail list, discuss this defect
> > and work with people on the list (myself included), to get the fix into
> > Axis1.2, which will be going out soon.
> >
> > -steve
> >
>
>
>

Mime
View raw message