Your "easiest" workaround is to use a filter. So 1) have the default servlet map to /* (which is the default) 2) keep the invoker declared 3) And make your filter do this ...
doFilter(..) { if (request.getServletPath().matches(regex-here)) { servletContext.getNamedDispatcher("invoker").forward(request,response); return; } chain.doFilter(...) } Where regex-here is something which limits the mayhem you are imposing on yourself .. like this: "/servlet/com\.yourcompany\..+" -Tim On 6/8/2011 10:17 AM, falva...@geocom.com.uy wrote: Dear all, I'm faceing the following problem in tomcat (probably just configuration). I have a WEBAPP which uses the "invoker" servlet (i know how bad it is, but for now it gets the job done). The static content is under "/images/" path. So a tipical URL was like"http://host:8080/webapp/servlet/home" <http://host:8080/webapp/servlet/home>. To avoid the "servlet" part of the URL I layed hands in "web.xml". This is the result: <web-app> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/images/*</url-pattern> </servlet-mapping> </web-app> The problem is that static content is not shown under "images", it is shown under "images/images". For example: http://host:8080/webapp/images/help.png ERROR http://host:8080/webapp/images/images/help.png OK In order to keep things as tidy as possible I would like static content to be served under "images". Using ROOT is not an option because this tomcat is shared among several WEBAPPS. Is there anything wrong with my configuration or am I missing something? This post addresses the same issue: http://stackoverflow.com/questions/234210/can-anyone-explain-servlet-mapping Thanks in advance and please excuse my bad English. Best regards, Federico. OS CentOS 5 Tomcat 6.0.29 JVM 1.6.0_20-b02