简体   繁体   English

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

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

I am struggling for the past 6-7 hrs trying to figure out what went wrong with my Apache Tomcat Server.在过去的 6-7 个小时里,我一直在努力找出我的 Apache Tomcat 服务器出了什么问题。 In all of my projects, the jdk version got switched to 1.6 from 1.8 .在我所有的项目中, jdk版本从1.8切换到1.6

To solve the version conflict , I verified whether compiled version and JVM of Tomcat version are same by taking help from here .为了解决version conflict ,我通过这里的帮助验证了编译版本和Tomcat版本的JVM是否相同。

For multiple contexts with the same path error, I know i need to remove duplicate Context tags in server.xml .对于具有相同路径错误的多个上下文,我知道我需要删除server.xml中的重复上下文标记。 So, first I check in Servers project (which gets created itself when you add Apache Tomcat Server in Eclipse) and find none there.因此,首先我检查 Servers 项目(当您在 Eclipse 中添加 Apache Tomcat Server 时它会自行创建)并且在那里找不到。 So, I delve deep into the directory(Eclipse WorkSpace) metadata\\.plugins\\org.eclipse.wst.server.core\\tmp3\\conf and removed the duplicate Context tags over there, with help taken from here .因此,我深入研究了目录 (Eclipse WorkSpace) metadata\\.plugins\\org.eclipse.wst.server.core\\tmp3\\conf并删除了那里重复的 Context 标记,从这里获取帮助。

Now when i create a new Dynamic Web Project, everything works fine and I am able to see the web page.现在,当我创建一个新的动态 Web 项目时,一切正常,我可以看到网页。 But if I try to access any of the HTML, XHTML files of those old project in which the jdk got changed, this org.apache.catalina.LifecycleException continues to pop up and the server fails to start, and consequently these duplicate Context tags continues to build up again and again every time i start the server.但是,如果我尝试访问 jdk 已更改的那些旧项目的任何 HTML、XHTML 文件,此org.apache.catalina.LifecycleException继续弹出并且服务器无法启动,因此这些重复的 Context 标记继续每次启动服务器时都会一次又一次地建立起来。

None of my old Web application projects seems to work now.我的旧 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 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext [/EdBurns_ChrisSchalk]]..... 严重:启动期间子容器失败java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]] .... 由:java.lang.RuntimeException: 注释中的意外元素值种类: 0

How to prevent these context tags being build up again and again in server.xml .如何防止这些上下文标记server.xml 中一次又一次地构建。 Secondly, how to get back those old web projects to working state again?其次,如何让那些旧的 web 项目重新回到工作状态?

我有一个类似的错误并通过以下步骤修复它: 1. 在 Servers 项目下(当您在 Eclipse 中添加 Apache Tomcat Server 时它会自行创建),打开 server.xml 2. 注释掉该行

<Context docBase=... />

This will prevent multiple context tags to be created upon each request这将防止在每个请求时创建多个上下文标签

1) Stop the server 1)停止服务器
2) Clean Tomcat's work directory 2)清理Tomcat的工作目录

位置截图:

If you are not using annotation based Servlet then please remove annotation @WebServlet("/YourServletName") from the starting of the servlet.如果您没有使用基于注解的 Servlet,那么请从 Servlet 的开头删除注解@WebServlet("/YourServletName") This annotation confuses the mapping with web.xml, after removing this annotation Tomcat server will work properly.这个注解混淆了web.xml的映射,去掉这个注解后Tomcat服务器就可以正常工作了。

This seems to be an issue with local Maven repository.这似乎是本地 Maven 存储库的问题。 (ie .m2 folder) may be due to some corrupt .jar file (即 .m2 文件夹)可能是由于一些损坏的 .jar 文件

For me, the following actions helped to overcome this issue.对我来说,以下行动有助于克服这个问题。

  1. On my local file system, I've deleted the directory .m2 (Maven local repository)在我的本地文件系统上,我删除了目录 .m2 (Maven 本地存储库)

  2. In Eclipse , updated the project (select Maven > Update Project )Eclipse 中,更新项目(选择Maven > Update Project

  3. Ran the app again on Tomcat server.在 Tomcat 服务器上再次运行该应用程序。

If you are using the following stack: Server Version: Apache Tomcat/9.0.21 Servlet Version: 4.0 JSP Version: 2.3如果您使用以下堆栈: 服务器版本:Apache Tomcat/9.0.21 Servlet 版本:4.0 JSP 版本:2.3

Then try adding <absolute-ordering /> to your web.xml file.然后尝试将<absolute-ordering />到您的 web.xml 文件中。 So your file looks like this:所以你的文件看起来像这样:

<?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>

  ......

Went through the various resources on the net but none of them helped then i deleted the existing server and added the same server again and now it is working fine and the steps are浏览了网上的各种资源,但都没有帮助,然后我删除了现有服务器并再次添加了相同的服务器,现在它工作正常,步骤是

Window>>ShowView>>Servers>>RightClick>>Delete窗口>>显示视图>>服务器>>右键单击>>删除

and then add the server again as you have added previously.然后像您之前添加的那样再次添加服务器。

我的情况是jdk目录下jre/lib/ext中的servlet-api.jar文件与tomcat中的servlet-api.jar文件冲突,去掉jdk目录下jre/lib/ext中的servlet-api.jar可以解决问题。

Just make sure build with correct web.xml configuration.I have update web.xml with tomcat configuration and it worked for me.只需确保使用正确的 web.xml 配置构建。我使用 tomcat 配置更新了 web.xml,它对我有用。 Sample :-样本 :-

 <?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") 我希望它有效,它对我有用。

Below solution worked for me: Navigate to Project->Clean.. Clean all the projects referenced by Tomcat server Refresh the project you're trying to run on Tomcat以下解决方案对我有用:导航到 Project->Clean .. 清除 Tomcat 服务器引用的所有项目刷新您尝试在 Tomcat 上运行的项目

Try to run the server afterwards之后尝试运行服务器

I think it is jar file version problem.我认为这是jar文件版本问题。 I had the same issue and I fixed it by changing the commons-codec-1.6.jar file from the build path.我遇到了同样的问题,我通过更改构建路径中的 commons-codec-1.6.jar 文件来修复它。 Earlier I was using latest version 1.10.早些时候我使用的是最新版本 1.10。 Gradually I decreased the versions and 1.6 version fixed my issue.渐渐地,我减少了版本,1.6 版本修复了我的问题。

Go to the task manager, kill the java processes and turn the server back on.转到任务管理器,杀死 java 进程并重新打开服务器。 should work fine.应该工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] - org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina] Tomcat7 - org.apache.catalina.LifecycleException:无法启动组件 - Tomcat7 - org.apache.catalina.LifecycleException: Failed to start component org.apache.catalina.LifecycleException:无法启动组件 - org.apache.catalina.LifecycleException: Failed to start component 无法启动嵌入式容器Spring Boot Application org.apache.catalina.LifecycleException:子容器在启动期间失败 - Unable to start embedded container Spring Boot Application org.apache.catalina.LifecycleException: A child container failed during start org.apache.catalina.LifecycleException;无法启动组件 - org.apache.catalina.LifecycleException;failed to start component org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext []] - org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost]] - org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/myapp-0.0.1]] - org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myapp-0.0.1]] org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ mmasgis]] - org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mmasgis]] org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext - org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM