Hi, I'm using Tomcat 7.0.27.
I have an application and I want to map my servlet to the application's context root, but I do not want to override the "/" mapping for the "default" servlet. It is specified in the Servlet spec that there is a "special" url mapping that can be used for such purposes and it is an empty string (""). I tried several approaches to specify this via web.xml and annotation: 1) Approach one <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>""</url-pattern> </servlet-mapping> 2) Approach two <servlet-mapping> <servlet-name>TestServlet2</servlet-name> <url-pattern></url-pattern> </servlet-mapping> 3) Approach three @WebServlet(urlPatterns={""}) In all three cases I'm receiving: Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> in servlet mapping at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3208) at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3183) at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1302) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1305) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:346) What I should do in order to have this running? Thanks in advance Regards Violeta pp: Extract from the spec 12.2 Specification of Mappings In the Web application deployment descriptor, the following syntax is used to define mappings: ■ A string beginning with a ‘/’ character and ending with a ‘/*’ suffix is used for path mapping. ■ A string beginning with a ‘*.’ prefix is used as an extension mapping. ■ The empty string ("") is a special URL pattern that exactly maps to the application's context root, i.e., requests of the form http://host:port/<contextroot>/. In this case the path info is ’/’ and the servlet path and context path is empty string (““). ■ A string containing only the ’/’ character indicates the "default" servlet of the application. In this case the servlet path is the request URI minus the context path and the path info is null. ■ All other strings are used for exact matches only.