>"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]