org.apache.catalina.LifecycleException: 无法启动组件 [StandardServer[8005]] 子容器在启动期间失败

org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]A child container failed during start

在过去的 6-7 小时里,我一直在努力找出我的 Apache Tomcat 服务器出了什么问题。在我所有的项目中,jdk 版本从 1.8 切换到 1.6

为了解决version conflict,我通过here.

的帮助验证了Tomcat版本的编译版本和JVM是否相同

对于具有相同路径错误的多个上下文,我知道我需要删除 server.xml 中重复的上下文标签。因此,首先我检查 Servers 项目(当您在 Eclipse 中添加 Apache Tomcat Server 时它会自行创建)并在那里找到 none。因此,在 here.

的帮助下,我深入研究了目录 (Eclipse WorkSpace) metadata\.plugins\org.eclipse.wst.server.core\tmp3\conf 并删除了那里重复的上下文标签

现在,当我创建一个新的动态 Web 项目时,一切正常,我可以看到该网页。但是,如果我尝试访问其中 jdk 已更改的那些旧项目的任何 HTML、XHTML 文件,此 org.apache.catalina.LifecycleException 将继续弹出并且服务器无法启动,因此每次我启动服务器时,这些重复的上下文标签都会一次又一次地建立起来。

None 我以前的 Web 应用程序项目现在似乎可以工作了。

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext [/EdBurns_ChrisSchalk]]..... SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] .... Caused by: java.lang.RuntimeException: Unexpected element value kind in annotation: 0

如何防止这些 上下文标签 server.xml 中一次又一次地建立起来。 其次,如何让那些旧的web项目重新回到工作状态?

这将防止在每次请求时创建多个上下文标签

1) 停止服务器
2)清理Tomcat的工作目录

如果您没有使用基于注解的 Servlet,请从 servlet 的开头删除注解 @WebServlet("/YourServletName")。此注释混淆了与 web.xml 的映射,删除此注释后 Tomcat 服务器将正常工作。

转到任务管理器,终止 java 进程并重新打开服务器。 应该可以正常工作。

浏览了网络上的各种资源,但其中 none 帮助了我,然后我删除了现有服务器并再次添加了同一服务器,现在它工作正常,步骤是

Window>>ShowView>>Servers>>RightClick>>Delete

然后像之前添加的那样再次添加服务器。

我认为是jar文件版本问题。我遇到了同样的问题,我通过更改构建路径中的 commons-codec-1.6.jar 文件来修复它。早些时候我使用的是最新版本 1.10。我逐渐减少了版本,1.6 版本解决了我的问题。

我遇到了类似的错误,并通过以下步骤修复了它: 1. 在 Servers 项目下(在 Eclipse 中添加 Apache Tomcat Server 时自动创建),打开 server.xml 2.注释掉

<Context docBase=... />

在我的例子中,jdk目录中jre/lib/ext中的servlet-api.jar文件与tomcat中的servlet-api.jar文件冲突,去掉jdk目录下jre/lib/ext中的servlet-api.jar即可解决问题

这似乎是本地 Maven 存储库的问题。 (即 .m2 文件夹)可能是由于一些损坏的 .jar 文件

对我来说,以下操作有助于解决这个问题。

  1. 在我的本地文件系统上,我删除了目录 .m2(Maven 本地存储库)

  2. Eclipse中,更新了项目(select Maven > 更新项目

  3. 运行 再次在 Tomcat 服务器上应用程序。

只需确保使用正确的 web.xml configuration.I 进行构建并使用 tomcat 配置更新 web.xml 并且它对我有用。 示例:-

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">
 <display-name>simulator</display-name>
 <description>simulator app</description>


    <!-- File upload  -->
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
 <!-- excel simulation -->
    <display-name>simulator</display-name>
    <description>simulator app</description>
    <!-- File upload  -->
    <welcome-file-list>
        <welcome-file>InsertPage.html</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>FileUploadServlet</servlet-name>
        <servlet-class>clari5.excel.FileUploadServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>FileUploadServlet</servlet-name>
        <url-pattern>/excelSimulator/FileUploadServlet</url-pattern>
    </servlet-mapping>



</web-app>

可能导致这种情况的一个问题是当您忘记将 / 字符放在 WebServlet 注释中 @WebServlet("/example") @WebServlet("example") 我希望它有用,它对我有用。

如果您正在使用以下堆栈: 服务器版本:Apache Tomcat/9.0.21 Servlet 版本:4.0 JSP 版本:2.3

然后尝试将 <absolute-ordering /> 添加到您的 web.xml 文件中。所以你的文件看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>spring-mvc-crud-demo</display-name>

  <absolute-ordering />

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  ......

以下解决方案对我有用: 导航到项目->清洁.. 清除 Tomcat 服务器引用的所有项目 在 Tomcat

上刷新您要 运行 的项目

之后尝试运行服务器