【问题标题】:IllegalArgumentException: The servlets named [table] and [servletbasic.MakeTable] are both mapped to the url-pattern [/MakeTable] [duplicate]IllegalArgumentException:名为 [table] 和 [servletbasic.MakeTable] 的 servlet 都映射到 url 模式 [/MakeTable] [重复]
【发布时间】:2014-10-06 08:26:58
【问题描述】:

我在启动 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 端口号,但没有成功。

感谢您的支持!

【问题讨论】:

  • 发布完整的 tomcat 服务器日志。
  • 谢谢。太长了,我贴在下面

标签: tomcat servlets mapping


【解决方案1】:

从您的日志中:

引起:java.lang.IllegalArgumentException:servlet 命名为 [table] 和 [servletbasic.MakeTable] 都映射到 url-pattern [/MakeTable] 是不允许的

您似乎有两个 servlet tableMakeTable 映射到同一个 URL /MakeTable

这可能是由annotation-based 在您的servlet 类中使用@WebServlet 注释和web.xml-based 配置混合两种servlet 声明方法引起的,与您发布的相同。

【讨论】:

  • 非常感谢。我将 /MakeTable 更改为不同的名称,它起作用了。
  • @user3455969 你可能想接受这个答案! (可能也赞成)
猜你喜欢
  • 2016-07-23
  • 2013-07-27
  • 2016-11-26
  • 2013-09-19
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 2016-03-07
相关资源
最近更新 更多