Servlet mapping specifies an unknown servlet name Action
微wx笑 2020-04-08【编程语言】 7 0关键字: Java
启动Java Web项目时提示错误:Servlet mapping specifies an unknown servlet name Action完整错误信息如下:严重: A child container failed during startjava.util.concurren
启动Java Web项目时提示错误:Servlet mapping specifies an unknown servlet name Action
完整错误信息如下:
严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testcs_dn-admin-web]]at java.util.concurrent.FutureTask.report(Unknown Source)at java.util.concurrent.FutureTask.get(Unknown Source)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)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(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/testcs_dn-admin-web]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 6 more Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name Actionat org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3275)at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3254)at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1430)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1344)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)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:5355)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more 十二月 09, 2014 2:21:25 下午 org.apache.catalina.core.ContainerBase startInternal 严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]at java.util.concurrent.FutureTask.report(Unknown Source)at java.util.concurrent.FutureTask.get(Unknown Source)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)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:731)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.startup.Catalina.start(Catalina.java:689)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 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(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source) Caused by: org.apache.catalina.LifecycleException: A child container failed during startat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:799)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 6 more 十二月 09, 2014 2:21:25 下午 org.apache.catalina.startup.Catalina start严重: The required Server component failed to start so Tomcat is unable to start. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8006]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)at org.apache.catalina.startup.Catalina.start(Catalina.java:689)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) 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:731)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 startat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 11 more 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol pause 信息: Pausing ProtocolHandler ["http-bio-8081"] 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol pause 信息: Pausing ProtocolHandler ["ajp-bio-8010"] 十二月 09, 2014 2:21:25 下午 org.apache.catalina.core.StandardService stopInternal 信息: Stopping service Catalina 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol destroy 信息: Destroying ProtocolHandler ["http-bio-8081"] 十二月 09, 2014 2:21:25 下午 org.apache.coyote.AbstractProtocol destroy 信息: Destroying ProtocolHandler ["ajp-bio-8010"]
最初这个问题是以: A child container failed during start 来记录的,但是 有很多问题会导致 A child container failed during start 错误,而在这个错误之上,还会有其它的错误,比如本错误:
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name Action
问题的产生:
我是 Copy 的其它项目的 web.xml 文件,里面有配置的 Servlet 本项目中没有,就导致了这个错误。
解决方法:
解决这个问题的关键在于错误信息中的:
[plain] view plain copy
Servlet mapping specifies an unknown servlet name Action
打开项目下的“src\main\webapp\WEB-INF\web.xml”文件,查找类似下面的节点:
[html] view plain copy
<servlet-mapping>
<servlet-name>Action</servlet-name>
<url-pattern>/public/Action</url-pattern>
</servlet-mapping>
将这个节点删除,问题就解决了。
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/lang/2020-04-08/382.html