thanks craig for clarifying that.  I'll stick with using symlinks, since
a fix would be a big task.

peter lin


"Craig R. McClanahan" wrote:
> 
> What you describe isn't a bug -- it's a direct consequence of the way
> auto-mount works in the "appBase" directory of a Host (i.e. the "webapps"
> directory).
> 
> Normally, Tomcat examines all the contents of the "webapps" directory, and
> (if it's a WAR or a directory) tries to automatically mount a webapp with
> the corresponding name as the context path -- thus the "examples"
> directory is automatically mounted at context path "/examples", the
> "tomcat-docs" directory is automatically mounted at "/tomcat-docs", and so
> on.
> 
> The root directory is a case where we can't do this -- conforming to this
> pattern would require us to have a zero-length pathname, which most OSs
> are not too happy with.  Therefore, there is a special case that the
> directory name ROOT will be mounted as the root webapp.
> 
> If you don't want two instances of you webapp, it's really very simple:
> 
> * Don't change the docBase for the ROOT partition
> 
> * Use an absolute docBase that points to a directory not under webapps.
> 
> By the way, you can cause the same sort of problem with any other context
> that is explicitly configured in server.xml -- for example, add a new
> <Context> entry just before the one for "/examples" like this, and see
> what happens::
> 
>   <Context path="/foo" docBase="examples"/>
> 
> Craig
> 
> On Mon, 29 Jul 2002, peter lin wrote:
> 
> > Date: Mon, 29 Jul 2002 08:48:38 -0400
> > From: peter lin <[EMAIL PROTECTED]>
> > Reply-To: Tomcat Developers List <[EMAIL PROTECTED]>
> > To: Tomcat Developers List <[EMAIL PROTECTED]>
> > Subject: ServletContextListener bug #11043
> >
> >
> > I've posted this question last week and talked to Remmy, but Remmy is
> > busy with moving.  I spent some time this weekend trying to track down
> > the bug, but couldn't figure it out.  I'm hoping if I describe the bug
> > more clearly, someone can point me in the right direction.
> >
> > The bug is the following:
> >
> > If I have server.xml set with all the defaults and I have a
> > ServletContextListener defined in web.xml, Tomcat correctly creates an
> > instance of my listener and starts my test application. If I add a
> > webapp, it also correctly creates an instance of my listener and starts
> > the test application.
> >
> >
> > If on the otherhand I change server.xml to point to a different
> > directory for the default root path from "ROOT" to say "myapp", Tomcat
> > ends up creating two separate instances of the listener. Both listeners
> > get contextInitialized() event and create one instance of my test
> > application per listener.  The correct behavior should be the same as
> > leaving the root directory to the default "ROOT".
> >
> > If I use 4.1.8 and load up the manager, I see webapp "/" and "/myapp".
> > This explains why two separate instances of my listener are created. I
> > only want 1 instance of my test application to startup with tomcat,
> > since it loads global configuration values into memory.
> >
> > I looked in catalina.core.StandardContext, but I don't see which class
> > is responsible for creating the listener listed in web.xml.  Is the
> > behavior of creating two instances of my listener according to
> > specification?  Is there something special about changing the default
> > root path from "ROOT" to some other "myapp" path?
> >
> >
> > peter lin
> >
> > --
> > To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> >
> >
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to