I tried this scenario with Tomcat 3.2.1 and I only get one call
to init().  Are you on Windows?  If your "ts" directory is actually
named "Ts", I think you would get two context's.  What does your
tomcat log show about contexts being added?

Larry

> -----Original Message-----
> From: Alexander Cherinko [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 08, 2001 1:51 PM
> To: [EMAIL PROTECTED]
> Subject: RE: Double loading when loading servlet on startup
> 
> 
> The case:
> 
> Nt/Linux v3.2.1,2,3.
> There is one context:
>         <Context path="/ts"
>                  docBase="webapps/ts"
>                  crossContext="true"
>                  debug="1"
>                  reloadable="true"(or false)
>                  trusted="false" >
>         </Context>
> 
> The web.xml piece for this context
>     <servlet>
>       <servlet-name>Loader</servlet-name>
>       <servlet-class>Loader</servlet-class>
>       <load-on-startup>1</load-on-startup>
>     </servlet>
> 
> jdb shows double classes named Loader loaded with different 
> instances of
> org.apache.tomcat.loader.AdaptiveClassLoader12 which have 
> generation field 2
> and 4 correspondingly. If I call
> 
> Class.forName("MyClass")
> 
> in init method of servlet and MyClass is subclass of thread I 
> have double
> threads. And so on.
> gc gets nothing and trying to interrupt threads in servlet's 
> destroy method
> gets nothing as well.
> 
> And this occurs only when servlet is marked as 
> load-on-startup. For ordinary
> servlet there is nothing like this.
> 
> --Che
> 
> 
> > -----Original Message-----
> > From: Larry Isaacs [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, August 08, 2001 7:58 PM
> > To: '[EMAIL PROTECTED]'
> > Subject: RE: Double loading when loading servlet on startup
> >
> >
> > In the past, the cases of "double loading" I've seen have all been
> > because an auto-loaded context (created by "AutoSetup" from the
> > webapps directory) was also manually loaded as a second 
> context, i.e.
> >
> >         <Context path="/othercontext"
> >                  docBase="webapps/examples"  ...
> >
> > Each context gets its own instance of servlets.  As a result,
> > init() is called twice, once for each context.
> >
> > There isn't enough information below to tell if this is the
> > source of the double-loading.
> >
> > Cheers,
> > Larry
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > > Sent: Wednesday, August 08, 2001 12:32 PM
> > > To: [EMAIL PROTECTED]
> > > Subject: RE: Double loading when loading servlet on startup
> > >
> > >
> > > Got the same problem :(((((( (on v3.2.3 - NT)
> > >
> > > -----Message d'origine-----
> > > De : Alexander Cherinko [mailto:[EMAIL PROTECTED]]
> > > Envoye : mercredi 8 aout 2001 16:38
> > > A : [EMAIL PROTECTED]
> > > Objet : Double loading when loading servlet on startup
> > >
> > >
> > > Hi
> > > problem is that when I mark servlets as load-on-startup they
> > > are loaded
> > > twice in jvm.
> > > I want this servlet to serve as initializer i.e. to
> > > initialize some other
> > > classes in its init method.
> > > The worst is that that classes are double loaded too. I.e. I
> > > want to init
> > > class which is Thread subclass to perform periodical 
> custom action. As
> > > result I have double threads running in jvm and making the
> > > same things! That
> > > was obviousely not my real intention.
> > > From the other hand when I launch that initializer from
> > > common servlet (not
> > > loaded on startup) the problem is not present.
> > > The most strange thing about it is that in both cases all
> > > classes are loaded
> > > with the same ClassLoader.
> > > I cannot understand is it a bug or just I don't 
> understand something.
> > > Please help.
> > > --Che
> > >
> >
> 

Reply via email to