Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start

Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start

对于小白的我来说初学JavaWEB,遇到了很多的问题就比如Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start这个问题,让我苦恼了一下午,于是自己就去百度上寻找解决方法,可谓是老鼠打洞—自找门道

运行tomcat失败,出现如图提示

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/javaee
                      http://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 mapping
	at 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匹配规则”的文章

发布了54 篇原创文章 · 获赞 17 · 访问量 2429

猜你喜欢

转载自blog.csdn.net/qq_44096670/article/details/104825098