java.lang.IllegalArgumentException:servlet 都映射到 url 模式 [/foo],这是不允许的

java.lang.IllegalArgumentException: The servlets are both mapped to the url-pattern [/foo] which is not permitted

我在尝试启动服务器时遇到上述错误。重要说明,对于任何其他 Web 应用程序,服务器都可以正常启动。只是这个特定的 Web 应用程序不起作用。这是完整的堆栈跟踪:

Caused by: java.lang.IllegalArgumentException: The servlets named [DOMServlet] and [edu.unsw.comp9321.DOMServlet] are both mapped to the url-pattern [/DOMServlet] which is not permitted
    at org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:293)
    at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2428)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2103)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2064)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2057)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2057)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2057)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1304)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5412)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more

你好 你应该检查你的 web.xml 文件,因为你有 2 个 servlet DOMServletedu.unsw.comp9321.DOMServlet 引用相同的 url-pattern,如果你没有映射web.xml 中的 servlet 签入您的代码 类 用 @WebServlet.

注释

另一个重要的一点是,也许您在 tomcat 目录中部署了另一个包含 DOMServlet 的应用程序,请检查您的 webapps 目录并清理以确保您不会与重复的 url-模式发生额外的战争。好吧,也许您可​​以向我们提供更多信息来帮助您。

干杯