影视播放网站建设/免费网站大全下载
Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start
对于小白的我来说初学JavaWEB,遇到了很多的问题就比如Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start这个问题,让我苦恼了一下午,于是自己就去百度上寻找解决方法,可谓是老鼠打洞—自找门道。
运行tomcat失败,出现如图提示
运行web.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><!--配置和映射Servlet --><servlet><servlet-name>helloServlet</servlet-name><servlet-class>com.atguigu.javaweb.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>helloServlet</servlet-name><url-pattern>hello</url-pattern> <!-- 错误的配置因为缺少“/” --></servlet-mapping></web-app>
控制台输出的错误原因:
A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Demo_Servlet]]at java.util.concurrent.FutureTask.report(FutureTask.java:122)at java.util.concurrent.FutureTask.get(FutureTask.java:192)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1243)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:829)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1707)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1697)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Demo_Servlet]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)... 6 more
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> hello in servlet mappingat org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3511)at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3486)at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1452)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1300)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)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:5606)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)... 6 more..................
解决办法:
检查web.xml中的servlet映射里面的,看中配置的内容是否缺少“/” ,"/"表示当前web应用。这个问题也可能是由过滤器引起的。
对于web.xml中的url-pattern标签想要进一步地理解可以观看大佬的“servlet的url-pattern匹配规则”的文章