>"W Strater" <[EMAIL PROTECTED]> wrote in message 
>news:[EMAIL PROTECTED]
>I know that the servlet invoker is not popular but that is what I have to 
>deal with.
>
>All of the servlets are invoked as 
>http://localhost:8080/servlets/com.domain.servlets.ServletName where the 
>/servlets is >the web app name.
>
>I would like to acheive to things.
>
>1) Ensure that only servlets within a package get invoked.
>2) Provide a catch all servlet.
>
>Here are my servlet mappings:
>
>
><servlet-mapping>
>
>    <servlet-name>invoker</servlet-name>
>
>    <url-pattern>/com.domain.servlets.*</url-pattern>
>
></servlet-mapping>
>

This doesn't do what you want.  It is an exact-match pattern for a URL that 
is litterally '/servlets/com.domain.servlets.*'.  And, even if it did work, 
Invoker would choke on the result.
>
>
>
>
><servlet-mapping>
>
>    <servlet-name>catchAll</servlet-name>
>
>    <url-pattern>/*</url-pattern>
>
></servlet-mapping>
>
>
>
>
>The problem is that the catchAll is getting every request despite being 
>defined after the invoker. I have even defined a >new servlet name, 
>xxxxxxxx, with the invoker class, 
>org.apache.catalina.servlets.InvokerServlet, still the catchAll gets all 
> >requests.
>
>Any suggestions?
>

Probably easiest is modifying the catchAll servlet to do something like (but 
I haven't tried it myself):
     String pathInfo = request.getPathInfo();
     if(pathInfo != null && pathInfo.startsWith("/com.domain.servlets.")) {
         RequestDispatcher rd = 
getServletContext().getNamedDispatcher("invoker");
         rd.forward(request, response);
         return;
    }

I can't see how you could accomplish what you want otherwise, without 
changing your URL-space layout (since Invoker only works if it is 
prefix-mapped).
>
>Wes.
>




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to