title: java.lang.IllegalArgumentException: The servlets named [abc] and [Testing] are both mapped to the url-pattern [/welcome] which is not permitted
body: <p>I want to build a simple Servlet in Java with Eclipse and Apache TomCat 7.</p>
  
  <p>So I have download Tomcat 7.0 on my local pc, extract under c:\ .</p>
  
  <p>I have created a simple Dinamyc web project, then I have add one simple Servlet like this:</p>
  
  <pre><code>import java.io.IOException;
  import javax.servlet.Servlet;
  import javax.servlet.ServletConfig;
  import javax.servlet.ServletException;
  import javax.servlet.ServletRequest;
  import javax.servlet.ServletResponse;
  import javax.servlet.annotation.WebServlet;
  
  /**
   * Servlet implementation class Testing
   */
  @WebServlet("/welcome")
  public class Testing implements Servlet {
  
      /**
       * Default constructor. 
       */
      public Testing() {
          // TODO Auto-generated constructor stub
      }
  
      /**
       * @see Servlet#init(ServletConfig)
       */
      public void init(ServletConfig config) throws ServletException {
          // TODO Auto-generated method stub
      }
  
      /**
       * @see Servlet#destroy()
       */
      public void destroy() {
          // TODO Auto-generated method stub
      }
  
      /**
       * @see Servlet#getServletConfig()
       */
      public ServletConfig getServletConfig() {
          // TODO Auto-generated method stub
          return null;
      }
  
      /**
       * @see Servlet#getServletInfo()
       */
      public String getServletInfo() {
          // TODO Auto-generated method stub
          return null; 
      }
  
      /**
       * @see Servlet#service(ServletRequest request, ServletResponse response)
       */
      public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
          // TODO Auto-generated method stub
      }
  
  }
  </code></pre>
  
  <p>This is my web.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&gt;
    &lt;display-name&gt;TestServlet&lt;/display-name&gt;
  
    &lt;servlet&gt;
      &lt;servlet-name&gt;abc&lt;/servlet-name&gt;
      &lt;servlet-class&gt;Testing&lt;/servlet-class&gt;
    &lt;/servlet&gt;
  
    &lt;servlet-mapping&gt;
      &lt;servlet-name&gt;abc&lt;/servlet-name&gt;
      &lt;url-pattern&gt;/welcome&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
  
    &lt;welcome-file-list&gt;
      &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
      &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
      &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
      &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;
      &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;
      &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;
    &lt;/welcome-file-list&gt;
  
  
  &lt;/web-app&gt;
  </code></pre>
  
  <p>But if I try to run application on the server I have this error:</p>
  
  <pre><code>gen 22, 2016 9:21:26 AM org.apache.catalina.core.AprLifecycleListener init
  INFORMAZIONI: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jdk1.7.0_71\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files (x86)/Java/jre1.8.0_66/bin/client;C:/Program Files (x86)/Java/jre1.8.0_66/bin;C:/Program Files (x86)/Java/jre1.8.0_66/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Java\jre1.8.0_66\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\;C:\Program Files (x86)\Toshiba\Bluetooth Toshiba Stack\sys\x64\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;C:\TomcatA\bin;C:\Program Files (x86)\Java\jre1.8.0_66\bin;D:\adt-bundle-windows-x86-20130522\sdk\tools;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Samsung\AllShare Framework DMS\1.3.23\;C:\Program Files\Samsung\AllShare Framework DMS\1.3.23\64bit\;C:\Python27;c:\Python27\Scripts;C:\SDKfolder\naoqi-sdk\include;C:\SDKfolder;C:\Program Files (x86)\Skype\Phone\;C:\Users\michele.castriotta\Downloads\apache-maven-3.3.9-bin\apache-maven-3.3.9\bin;D:\eclipse\eclipse_mars;;.
  gen 22, 2016 9:21:26 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
  AVVERTENZA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TestServlet' did not find a matching property.
  gen 22, 2016 9:21:27 AM org.apache.coyote.AbstractProtocol init
  INFORMAZIONI: Initializing ProtocolHandler ["http-bio-8080"]
  gen 22, 2016 9:21:27 AM org.apache.coyote.AbstractProtocol init
  INFORMAZIONI: Initializing ProtocolHandler ["ajp-bio-8009"]
  gen 22, 2016 9:21:27 AM org.apache.catalina.startup.Catalina load
  INFORMAZIONI: Initialization processed in 1586 ms
  gen 22, 2016 9:21:27 AM org.apache.catalina.core.StandardService startInternal
  INFORMAZIONI: Starting service Catalina
  gen 22, 2016 9:21:27 AM org.apache.catalina.core.StandardEngine startInternal
  INFORMAZIONI: Starting Servlet Engine: Apache Tomcat/7.0.47
  gen 22, 2016 9:21:28 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
  INFORMAZIONI: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [231] milliseconds.
  gen 22, 2016 9:21:28 AM org.apache.catalina.core.ContainerBase startInternal
  GRAVE: A child container failed during start
  java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/TestServlet]]
      at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.util.concurrent.FutureTask.get(FutureTask.java:188)
      at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
      at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
  Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/TestServlet]]
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
      ... 6 more
  Caused by: java.lang.IllegalArgumentException: The servlets named [abc] and [Testing] are both mapped to the url-pattern [/welcome] which is not permitted
      at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335)
      at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2466)
      at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2148)
      at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:2071)
      at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1978)
      at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1300)
      at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
      at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
      at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
      at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5322)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      ... 6 more
  
  gen 22, 2016 9:21:28 AM org.apache.catalina.core.ContainerBase startInternal
  GRAVE: A child container failed during start
  java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
      at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      at java.util.concurrent.FutureTask.get(FutureTask.java:188)
      at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
      at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:691)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
  Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
  Caused by: org.apache.catalina.LifecycleException: A child container failed during start
      at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
      at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      ... 6 more
  
  gen 22, 2016 9:21:28 AM org.apache.catalina.startup.Catalina start
  GRAVE: The required Server component failed to start so Tomcat is unable to start.
  org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:691)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
  Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
      at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      ... 7 more
  Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
      at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      ... 9 more
  Caused by: org.apache.catalina.LifecycleException: A child container failed during start
      at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
      at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      ... 11 more
  
  gen 22, 2016 9:21:28 AM org.apache.coyote.AbstractProtocol pause
  INFORMAZIONI: Pausing ProtocolHandler ["http-bio-8080"]
  gen 22, 2016 9:21:28 AM org.apache.coyote.AbstractProtocol pause
  INFORMAZIONI: Pausing ProtocolHandler ["ajp-bio-8009"]
  gen 22, 2016 9:21:28 AM org.apache.catalina.core.StandardService stopInternal
  INFORMAZIONI: Stopping service Catalina
  gen 22, 2016 9:21:28 AM org.apache.coyote.AbstractProtocol destroy
  INFORMAZIONI: Destroying ProtocolHandler ["http-bio-8080"]
  gen 22, 2016 9:21:28 AM org.apache.coyote.AbstractProtocol destroy
  INFORMAZIONI: Destroying ProtocolHandler ["ajp-bio-8009"]
  </code></pre>