无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ JDBC_DBO]]

时间:2012-09-09 14:56:57

标签: java tomcat catalina executionexception lifecycleexception

我得到这个Tomcat错误:

Sep 09, 2012 4:16:54 PM org.apache.catalina.core.AprLifecycleListener init
Information: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Products\jdk1.7.0_03\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Products/jdk1.7.0_03/jre/bin/client;C:/Products/jdk1.7.0_03/jre/bin;C:/Products/jdk1.7.0_03/jre/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Products\jdk1.7.0_03\jre\bin;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Products\eclipse32;;.
Sep 09, 2012 4:16:54 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
Warnung: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:NAR_JDBC_DBO' did not find a matching property.
Sep 09, 2012 4:16:55 PM org.apache.coyote.AbstractProtocol init
Information: Initializing ProtocolHandler ["http-bio-80"]
Sep 09, 2012 4:16:55 PM org.apache.coyote.AbstractProtocol init
Information: Initializing ProtocolHandler ["ajp-bio-8009"]
Sep 09, 2012 4:16:55 PM org.apache.catalina.startup.Catalina load
Information: Initialization processed in 1008 ms
Sep 09, 2012 4:16:55 PM org.apache.catalina.core.StandardService startInternal
Information: Starting service Catalina
Sep 09, 2012 4:16:55 PM org.apache.catalina.core.StandardEngine startInternal
Information: Starting Servlet Engine: Apache Tomcat/7.0.27
Sep 09, 2012 4:16:55 PM org.apache.catalina.core.ContainerBase startInternal
Schwerwiegend: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/NAR_JDBC_DBO]]
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
    at java.util.concurrent.FutureTask.get(FutureTask.java:111)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/NAR_JDBC_DBO]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    ... 7 more
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
    at java.lang.Class.getDeclaredFields(Class.java:1760)
    at org.apache.catalina.startup.WebAnnotationSet.getDeclaredFields(WebAnnotationSet.java:452)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:257)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:136)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:66)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:381)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:858)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.RuleSet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    ... 21 more

Sep 09, 2012 4:16:55 PM org.apache.catalina.core.ContainerBase startInternal
Schwerwiegend: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
    at java.util.concurrent.FutureTask.get(FutureTask.java:111)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:675)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1136)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more

Sep 09, 2012 4:16:55 PM org.apache.catalina.startup.Catalina start
Schwerwiegend: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:675)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1136)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more

Sep 09, 2012 4:16:55 PM org.apache.catalina.startup.Catalina start
Information: Server startup in 540 ms

问题是什么?我使用的是Apache Tomcat 7,使用了以下4个catalina jar:

  • catalina.jar
  • 卡塔利娜-的ant.jar
  • 卡塔利娜-ha.jar
  • 卡塔利娜-tribes.jar

是否缺少其他任何JAR文件?

30 个答案:

答案 0 :(得分:19)

Apache Commons Digester您遗失了commons-digester3-3.2.jar。如果您使用的是Maven,可以添加:

<dependency>
    <groupId>commons-digester</groupId>
    <artifactId>commons-digester</artifactId>
    <version>2.1</version>
</dependency>

到您的项目依赖项。

<强>更新 最新下载页面中的jar与您的应用程序所期望的包结构略有不同。您可以改为使用this older jar

答案 1 :(得分:11)

我在tomcat服务器上遇到了同样的问题,但是当我深入检查时,我发现我在我的web.xml文件中添加了一个新标签,服务器不接受它,所以检查你的文件是否有任何更新然后重启你的雄猫将会很好。

答案 2 :(得分:8)

如果您使用eclipse,则删除tomcat服务器和Server文件夹,然后重新配置 那两个......

答案 3 :(得分:7)

网络模块 - &gt;属性 - &gt;部署组件 - &gt; (添加文件夹“src / main / webapp”,Maven Dependencies和其他所需模块)

答案 4 :(得分:5)

我在Java EE Eclipse中运行时得到了这个。这里的答案都没有帮助。最终为我做的是:

  1. maven clean
  2. 在调试中启动tomcat
  3. 我一直在做maven干净安装,错误不会消失。怪异。

答案 5 :(得分:4)

嗯,我不确定实际原因是什么,但我已经为这个错误做了这种方式。我已经注释掉了这个forlet及其工作的注释。

//@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {

不知道这可能是正确的解决方案。但这有用,另一件可以测试的事情是将servlet jar添加到类路径中。这可能有用。

答案 6 :(得分:4)

我猜你正在使用Dynamic Web Project,因为你在评论中提到了de文件夹WEB-INF / lib;如果是,请确保您没有将任何* -servlet jar文件放在此文件夹或容器已提供的其他jar中,在本例中为Tomcat。    另外:一旦我使用了jersey-servlet.jar,我需要将它从lib文件夹中删除,以便Tomcat启动时没有问题;然后我只使用jersey-bundle.jar,效果很好。

答案 7 :(得分:3)

即使尝试了“mvn eclipse:eclipse -Dwtpversion = 2.0”和“mvn clean install”,我也遇到了同样的问题。但在我清理我的服务器后,它才起作用。所以也许在你确定你需要所有依赖之后尝试清理服务器。

答案 8 :(得分:2)

我有同样的问题。经过多次搜索,我决定在Eclipse中重新配置我的服务器。 (即按照Benson的建议清洁它 转到项目浏览器,服务器和删除(确保您还删除磁盘上的内容) 然后转到Windows-&gt; Preferences-&gt; Server-&gt; Runtime Environments 删除Tomcat服务器,然后将其重新添加。

这将清除server.xml,webxml,context.xml文件。它基本上重写了它们。在我的一个(或多个东西)中的某些东西是错误的,这解决了它。比试图找到有问题的标签/线更简单

答案 9 :(得分:1)

我遇到了这个错误,尝试了几个你提到的方法仍然没有用的方法。我甚至试图重新安装Tomcat,仍然有这个错误。

我做的最后一件事是删除整个Netbeans和Tomcat。它终于成功了。我知道这不是解决问题的好方法,但如果你真的很匆忙而且不知道该怎么做。

答案 10 :(得分:1)

通过在项目上运行mvn clean install并更正所有错误

,检查您的应用是否成功构建

通常,如果您的类路径中没有依赖项,则会出现此错误。

如果您使用的是tomcat maven插件,请尝试使用以下命令部署您的战争

tomcat7:run-war-only

答案 11 :(得分:1)

Windows - &gt;偏好 - &gt;服务器 - &gt;运行时环境 - &gt;删除所有可用的Apache服务器。添加相同。现在在服务器上运行您的应用完成 :)

答案 12 :(得分:1)

即使我有同样的问题

Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/]

我已经添加了相应的依赖,因为它对我有用。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
</dependency>

答案 13 :(得分:0)

只需清理您的服务器(就我而言,我使用的是 Tomcat):

mvn clean
mvn install

答案 14 :(得分:0)

尝试在pom.xml中添加此maven依赖项:

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2</version>
</dependency>

答案 15 :(得分:0)

在互联网上花费了大量时间后。我发现该选项没有 为我努力工作 右键单击服务器->清洁。没用。

有效的是:

您只需在<absolute-ordering/>标签下面将<display-name>标签添加到您的 web.xml ,它应该可以使用。for more detail click here

答案 16 :(得分:0)

我已经在WEB INF的lib文件夹中更改了所有春季版本的jar,如果您使用的是maven项目,则只需使用其他版本更新依赖项就可以了

答案 17 :(得分:0)

我认为您使用的部署描述符和依赖项存在问题。

我在做这些事情时遇到了同样的问题。 更新您的POM.XML

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.17</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.17</version>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-client</artifactId>
            <version>1.17</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>

    </dependencies>

此外,将此代码仅在POM.XML下的build标签内添加,因为Container需要知道资源文件的配置位置。

<build>
        <finalName>HatchWaysAppAPI</finalName>
        <sourceDirectory>src/main/resources</sourceDirectory>
        <plugins>

            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

        </plugins>
    </build>

根据需要更改资源文件夹。

您的Web.xml应该是这样的。

<servlet>
        <servlet-name>HatchWaysAppAPI Maven Webapp</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.hatchwaysapi.mainController</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>HatchWaysAppAPI Maven Webapp</servlet-name>
        <url-pattern>/v1/*</url-pattern>
    </servlet-mapping>

注意:仅当您不使用Maven而不是忽略Pom.XML时,才对Maven进行此配置。只需对Web.xml进行配置。

答案 18 :(得分:0)

发布此解决方案可能会对某人有所帮助

我在Tomcat 8.0上遇到了类似的问题。似乎tomcat jar文件已损坏。因此,我刚刚下载了新的Tomcat 8.0,将其解压缩并使用Eclipse IDE进行了配置。还要检查首选项菜单下的Project Facet。

答案 19 :(得分:0)

对我来说,我做了mvn clean,然后重新启动了Tomcat。它对我有用

答案 20 :(得分:0)

我在web.xml中提到的过滤器名称不存在。纠正错字后,它可以正常工作。

答案 21 :(得分:0)

我遇到了由此嵌套异常引起的同样问题

Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
    at java.util.zip.ZipFile.read(Native Method)
    at java.util.zip.ZipFile.access$1400(ZipFile.java:60)

仔细观察发现这是由于弹簧版本有一个不好的签名。将spring版本更改为4.3.4,构建和部署。一切正常。

HTH

答案 22 :(得分:0)

如果您使用的是动态网络项目,请确保已将&#34; WebContent&gt;中的jar文件添加为 commons-logging-1.2.jar 。 WEB-INF&gt; LIB&#34;文件夹中。

与你一起可以做更多的步骤:

  1. 右键点击项目&gt;属性&gt;目标运行时&gt;从列表中选择Apache Tomcat服务器&gt;申请&gt;确定。

  2. 转到服务器标签&gt;右键单击服务器配置&gt;属性&gt;一般&gt;切换位置(例如/ / Servers / Tomcat / .....)&gt;申请&gt;确定。

  3. 这就是全部!

答案 23 :(得分:0)

这是因为一个或所有maven依赖项已损坏。只需删除损坏的依赖项或所有maven本地依赖项,然后重新启动eclipse并更新项目。

答案 24 :(得分:0)

在intelliJ中,我在app server配置中为Tomcat Home和Tomcat基目录指定了两个不同的tomcat版本/文件夹

答案 25 :(得分:0)

所有我找到的解决方案,无论你得到什么,例如.. org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext []] ..

罐子的路径问题..

要解决这个问题..将所有罐子放在“WebContent / lib”中,无论您在项目中需要什么。  我希望它对你有用......

答案 26 :(得分:0)

在发布项目时创建server.xml。现在如果稍后添加更多依赖项,则server.xml将无法捕获它,除非再次刷新。有时您还需要重建context / config文件。 首先,您尝试清理工作目录。如果它不起作用,则删除服务器和服务器文件夹,然后重新配置这两个。

答案 27 :(得分:0)

我在web.ml中配置了一个servlet,我再次使用servlet类中的注释配置了相同的servlet。我删除了基于注释的配置,然后服务器正常启动。

答案 28 :(得分:0)

我遇到了同样的问题。

org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext []]

已经是所有的机器人。我的pom.xml:

http://maven.apache.org/xsd/maven-4.0.0.xsd“&GT;     4.0.0     com.springapp     战争     1.0-SNAPSHOT     战争     租金&LT; /名称&gt; - &GT;

<properties>
    <spring.version>4.1.1.RELEASE</spring.version>
    <spring.security.version>3.2.6.RELEASE</spring.security.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!--Spring Security-->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring.security.version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <!--JUnit-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
</dependencies>

<build>
    <finalName>war</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/*Test.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

答案 29 :(得分:-2)

要解决此问题,您必须删除目录中的.snap文件:

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

删除此文件后,您可以毫无问题地启动Eclipse。