This question already has answers here:
java.lang.IllegalArgumentException: The servlets named [X] and [Y] are both mapped to the url-pattern [/url] which is not permitted
                                
                                    (6个答案)
                                
                        
                                3年前关闭。
            
                    
启动Tomcat v7.0时出现问题。

'Staring Tomcat v7.0 Server at localhost' has encountered a problem.
 Server Tomcat v7.0 Server at localhost failed to start.


我发现我的问题出在web.xml文件中。
这个文件看起来像这样

<display-name>Exercises</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>table</servlet-name>
    <servlet-class>servletbasic.MakeTable</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>table</servlet-name>
    <url-pattern>/MakeTable</url-pattern>
</servlet-mapping>


当我删除servlet-mapping标签时,Tomcat启动良好。
这是我的项目树

  ---Java Resources

    ---servletbasic

      ---MakeTable.java


我尝试更改http端口号,但是没有用。

谢谢你的支持!

最佳答案

从您的日志中:


  引起原因:java.lang.IllegalArgumentException:名为的servlet
  [table]和[servletbasic.MakeTable]都映射到
  不允许的网址模式[/ MakeTable]


看来您有两个servlet tableMakeTable映射到相同的URL /MakeTable

这可能是由于在servlet类中使用annotation-based注释通过@WebServlet混合了两个servlet声明方法,以及通过与发布的相同的web.xml-based配置而引起的。

10-07 19:02