【问题标题】:IllegalArgumentException: The servlets named [AdminController] and [muShag.Private.controller.AdminController] are both mapped to the url-pattern [duplicate]IllegalArgumentException:名为 [AdminController] 和 [muShag.Private.controller.AdminController] 的 servlet 都映射到 url 模式 [重复]
【发布时间】:2013-07-27 00:20:00
【问题描述】:

我在 Eclipse Juno 中使用 Tomcat 7 在 JAVA 7 中创建了一个应用程序。当时它运行良好,但几天后它停止工作。现在每当我尝试运行该应用程序时,它都会显示错误:

SEVERE: A child container failed during start java.util.concurrent.ExecutionException:

org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MuShag]] 在 java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 在 java.util.concurrent.FutureTask.get(未知来源)在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 在 java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 在 java.util.concurrent.FutureTask.run(未知来源)在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因: org.apache.catalina.LifecycleException:无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/MuShag]] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 7 更多原因:java.lang.IllegalArgumentException: 名为 [AdminController] 的 servlet 和 [muShag.Private.controller.AdminController] 都映射到 url-pattern [/AdminController] 不允许 org.apache.catalina.deploy.WebXml.addServletMapping(WebXml.java:335) 在 org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2412) 在 org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2125) 在 org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2080) 在 org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2073) 在 org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2073) 在 org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2073) 在 org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1300) 在 org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) 在 org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 在 org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 更多 2013 年 7 月 26 日晚上 9:36:50

现在如何处理这些错误。在某个地方冲浪太多之后,我通过添加 commons-looging.jar 找到了一种方法,但它不起作用。

【问题讨论】:

    标签: eclipse tomcat servlets mapping


    【解决方案1】:

    错误信息说明了一切:

    名为 [AdminController] 和 [muShag.Private.controller.AdminController] 的 servlet 都映射到不允许的 url 模式 [/AdminController]。

    修复您的 web.xml 或注释,以便这两个 servlet 不会映射到相同的 url 模式,或者只定义其中一个 servlet。

    【讨论】:

    • 很可能是 OP 在他的代码中使用了注释并且丢失了他的 URL 映射。注释万岁!
    • 确实如此。在答案中添加了“或您的注释”。
    猜你喜欢
    • 2016-07-23
    • 2014-10-06
    • 2016-11-26
    • 2013-09-19
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2016-03-07
    相关资源
    最近更新 更多