Holger,

Thanks for the tip.  I think you're right.

I just noticed that it is behaving diferently to how it was with warp and
webapp.

Cheers,

Andy

> -----Original Message-----
> From: Stratmann, Holger [mailto:[EMAIL PROTECTED]]
> Sent: 15 January 2003 15:56
> To: 'Tomcat Users List'
> Cc: '[EMAIL PROTECTED]'
> Subject: AW: Servlet Mapping Bug?
>
>
> > > ie put the full URI in the url-pattern, not just the path
> > relative to the
> > > Tomcat application root.
>
> Have you configured the "Tomcat application root"?
>
> I don't mean in Apache, I mean in server.xml?
>
> For each context you configure, you can also specify the "URL-prefix".
>
> default:
>         <!-- Tomcat Root Context -->
>         <!--
>           <Context path="" docBase="ROOT" debug="0"/>
>         -->
>
>         <!-- Tomcat Examples Context -->
>         <Context path="/examples" docBase="examples" debug="0" .....
>
>
> etc.
> Maybe you could solve your problem by just configuring path="/control"
> here...
> (I don't think it's a bug?)
>
> > -----Ursprüngliche Nachricht-----
> > Von: Andy Eastham [mailto:[EMAIL PROTECTED]]
> > Gesendet: Mittwoch, 15. Januar 2003 16:17
> > An: Tomcat Users List
> > Betreff: RE: Servlet Mapping Bug?
> >
> >
> > This is a bug, as I've now checked the Servlet Specification v2.3:
> >
> > The key phrase is:
> > The path used for mapping to a servlet is the request URL
> > from the request
> > object minus the context path.
> > ie for my /control/plots/x.jpg request, the context path is
> > /control, so
> > only /plots/x.jpg should be used to map the servlet.
> >
> > I guess this bug is probably in the Coyote Connector?
> >
> > Andy
> >
> > PS
> > Here's the full text of the relevant bit from the servlet spec:
> >
> > SRV.11.1 Use of URL Paths
> > Upon receipt of a client request, the web container determines the web
> > application to which to forward it. The web application
> > selected must have
> > the longest context path that matches the start of the request URL.
> >
> > The matched part of the URL is the context path when mapping
> > to servlets.
> > The web container next must locate the servlet to process the
> > request using
> > the path mapping procedure described below:
> > The path used for mapping to a servlet is the request URL
> > from the request
> > object minus the context path. The URL path mapping rules
> > below are used in
> > order. The first successful match is used with no further
> > matches attempted:
> >
> > 1. The container will try to find an exact match of the path
> > of the request
> > to the path of the servlet. A successful match selects the servlet.
> >
> > 2. The container will recursively try to match the longest
> > path-prefix: This
> > is done by stepping down the path tree a directory at a time,
> > using the '/'
> > character as a path separator. The longest match determines
> > the servlet
> > selected.
> >
> > 3. If the last segment in the URL path contains an extension
> > (e.g. .jsp),
> > the servlet
> > container will try to match a servlet that handles requests for the
> > extension.
> > An extension is defined as the part of the last segment after
> > the last '.'
> > character.
> >
> > 4. If neither of the previous three rules result in a servlet
> > match, the
> > container will
> > attempt to serve content appropriate for the resource requested. If a
> > "default"
> > servlet is defined for the application, it will be used.
> > The container must use case-sensitive string comparisons for matching.
> >
> > Note 1. Previous versions of this specification made use of
> > these mapping
> > techniques a suggestion rather than a requirement, allowing servlet
> > containers to each have their different schemes for mapping
> > client requests
> > to servlets.
> >
> > > -----Original Message-----
> > > From: Andy Eastham [mailto:[EMAIL PROTECTED]]
> > > Sent: 14 January 2003 22:46
> > > To: Tomcat Users List
> > > Subject: Servlet Mapping Bug?
> > >
> > >
> > > Hi,
> > >
> > > I've just upgraded from Tomcat 4.0.4b1 and apache 1.3 using
> > warp to Tomcat
> > > 4.1.18 and Apache 2.0.43 using mod_jk2.
> > >
> > > I use a feature of servlet mapping in web.xml, where I map any
> > > request under
> > > a particular directory to a single servlet.  My application
> > is mapped from
> > > Apache under the url "/control/" and I invoke myServlet with any
> > > request to
> > > the "plots" subdirectory.  In the old configuration, the relevant
> > > part of my
> > > web.xml looked like:
> > >
> > >     <servlet-mapping>
> > >         <servlet-name>
> > >             myServlet
> > >         </servlet-name>
> > >         <url-pattern>
> > >             /plots/*
> > >         </url-pattern>
> > >     </servlet-mapping>
> > >
> > > However, in my new setup, I have had to change this to make it work:
> > >
> > >     <servlet-mapping>
> > >         <servlet-name>
> > >             myServlet
> > >         </servlet-name>
> > >         <url-pattern>
> > >             /control/plots/*
> > >         </url-pattern>
> > >     </servlet-mapping>
> > >
> > > ie put the full URI in the url-pattern, not just the path
> > relative to the
> > > Tomcat application root.
> > >
> > > This strikes me as less portable - if I change my url
> > mapping from Apache,
> > > I'll have to edit my web.xml, which wouldn't have been necessary
> > > before.  Is
> > > this a bug, or has it really been changed to better comply with
> > > the Servlet
> > > spec?
> > >
> > > Best regards,
> > >
> > > Andy Eastham
> > >
> > >
> > >
> > > --
> > > 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]>
>
>



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

Reply via email to