天天看点

启动tomcat时报错:java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException:A child

1

2

3

对俺有用的原因:

(一)可能原因是在web.xml中配置时,servlet-mapping的属性配置错误(红色出为配置错误):

<servlet-mapping>
      <servlet-name>coreServlet</servlet-name>
      <url-pattern>/CoreServlet</url-pattern>
  </servlet-mapping>
           

正确配置为:

<servlet-mapping>
      <servlet-name>coreServlet</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
           

其中

<url-pattern>xxx</url-pattern>

可以为你想要的路径,但是一定要配置正确。

ps: url-pattern规则:有精确匹配,最长路径匹配,扩展匹配,如果前三条规则都没有匹配到,则会交给第四种叫default servlet处理。

以”/’开头和以”/”结尾的是用来做路径映射的; “/” 是用来定义default servlet映射的。 以前缀”.”开头的是用来做扩展映射的。剩下的都是用来定义详细映射的;比如:

/aa/bb/cc.action。

<url-pattern>/</url-pattern>和<url-pattern>/*</url-pattern>的区别:
<url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
           

<url-pattern>/*</url-pattern>

会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和*.html等)

注意:路径和扩展名匹配无法同时设置,因为这种匹配即属于路径映射,也属于扩展映射,导致容器无法判断。比如下面的三个

<url-pattern>

都是非法的,如果设置,启动tomcat服务器会报错。

<url-pattern>/kata/*.jsp</url-pattern>

  <url-pattern>/*.jsp</url-pattern>

  <url-pattern>he*.jsp</url-pattern>
           

另外注意:

<url-pattern>/aa/*/bb</url-pattern>

这个是精确匹配,url必须是 /aa//bb,这里的不是通配的含义