Failed to start component [StandardEngine[Catalina

2019-02-19 08:55发布

问题:

When trying to start tomcat I get this error. What could be the cause of this?

I've go through a bunch of similar posts and I can't find anything.

I am using Apache Tomcat v8.0 and JRE 1.8.0

    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ocmsLatest]]
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ocmsLatest]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    ... 6 more
Caused by: java.lang.SecurityException: SHA1 digest error for javax/activation/MimeTypeParameterList.class
    at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
    at java.util.jar.JarVerifier.processEntry(Unknown Source)
    at java.util.jar.JarVerifier.update(Unknown Source)
    at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
    at java.io.InputStream.skip(Unknown Source)
    at java.io.BufferedInputStream.skip(Unknown Source)
    at java.io.DataInputStream.skipBytes(Unknown Source)
    at org.apache.tomcat.util.bcel.classfile.Utility.skipFully(Utility.java:61)
    at org.apache.tomcat.util.bcel.classfile.Utility.swallowAttribute(Utility.java:86)
    at org.apache.tomcat.util.bcel.classfile.Utility.swallowFieldOrMethod(Utility.java:76)
    at org.apache.tomcat.util.bcel.classfile.ClassParser.readMethods(ClassParser.java:234)
    at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:94)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2042)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1988)
    at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1958)
    at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1912)
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1157)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5202)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 6 more

Dec 29, 2016 3:34:43 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: 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.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 6 more

Dec 29, 2016 3:34:43 PM org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    ... 11 more

Dec 29, 2016 3:34:43 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-nio-8080"]
Dec 29, 2016 3:34:43 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-nio-8009"]
Dec 29, 2016 3:34:43 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Dec 29, 2016 3:34:43 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-nio-8080"]
Dec 29, 2016 3:34:43 PM org.apache.coyote.AbstractProtocol destroy
SEVERE: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]
java.lang.NullPointerException
    at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
    at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
    at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
    at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
    at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

Dec 29, 2016 3:34:43 PM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-nio-8009"]
Dec 29, 2016 3:34:43 PM org.apache.coyote.AbstractProtocol destroy
SEVERE: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
java.lang.NullPointerException
    at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
    at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
    at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
    at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
    at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
    at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

And Jar Files:

activation
antlr
asm-3.1
asm-commons-3.3
asm-tree-3.3
bcprov-jdk15on-1.47
c3p0-0.9.1.2
commons-beanutils-1.7.0
commons-collections-3.1
commons-digester
commons-io-1.3.2
commons-lang-2.3
commons-logging-1.0.4
commons-validator
displaytag-1.2
displaytag-export-poi-1.2
displaytag-portlet-1.2
dom4j-1.6
eclipselink-2.0.2
eclipselink-javax.persistence-2.0
freemarker
freemarker-2.3.15
gcm-server-1.0.2
imgscalr-lib-4.2
iText-2.1.7
jackson-annotations-2.2.3
jackson-core-2.2.3
jackson-core-asl-1.9.2
jackson-databind-2.2.3
jackson-jaxrs-1.9.2
jackson-mapper-asl-1.9.2
jackson-xc-1.9.2
jasper-compiler-jdt
jasperreports-4.1.1
javapns-2.2.1
javassist
jcommon-1.0.17
jersey-apache-client-1.18
jersey-atom-abdera-1.18
jersey-client-1.18
jersey-core-1.18
jersey-guice-1.18
jersey-json-1.18
jersey-multipart-1.18
jersey-server-1.18
jersey-servlet-1.18
jersey-simple-server-1.18
jersey-spring-1.18
jettison-1.1
jfreechart-1.0.14
json-simple-1.1.1
jsr311-api-1.1.1
jxl
log4j-1.2.13
mail
mimepull-1.4
mysql-connector-java-5.0.5
oauth-client-1.18
oauth-server-1.18
oauth-signature-1.18
ognl-2.7.3
poi-3.7
poi-3.8-20120326
poi-3.11-beta2
poi-ooxml-3.11-beta2
poi-ooxml-schemas-3.11-beta2
quartz-all-2.1.6
recaptcha4j-0.0.7
slf4j-api-1.6.1
slf4j-log4j12-1.6.1
struts2-core-2.1.8.1
struts2-dojo-plugin-2.2.3
struts2-fullhibernatecore-plugin-1.4-GA
struts2-jasperreports-plugin-2.2.3
struts2-jquery-grid-plugin-3.2.1
struts2-jquery-plugin-3.2.1
struts2-json-plugin-2.2.3
struts2-tiles-plugin-2.2.3
tiles-api-2.0.6
tiles-core-2.0.6
tiles-jsp-2.0.6
xmlbeans-2.6.0
xwork-core-2.1.6

回答1:

Tomcat indeed has problems (See bug #60087) with verifying jar file signatures.

Solutions:

  • Update Apache Tomcat version.

  • You might verify signature of files manually, if you read Verifying Signed JAR Files, before deploying app to the Tomcat server.

  • You might also have corrupted jar files downloaded. You should always download from known sources or repositories.

  • You can also download along with jar file the digest signature files and verify contents of the file with OS utility.

  • Don't use malicious sites hosted jar files for your download.

  • Use antivirus to scan for viruses inside jar and verify signature. Some antivirus's have bugs and you should not use its result report for final decision about file contents. E.g. Error: "Invalid sha1 signature file digest for" when verifying a Jar file.



回答2:

Your jars are completely messed up:

  1. Always preserve versions consistency (eg. not core 2.1.8.1 and plugins 2.2.3)
  2. Always pick up the latest version (eg. 2.3.x or, if you can break retrocompatibility, 2.5.x)
  3. Always include only the Struts2 plugins you know and use, only the needed ones. Remove all the others.
  4. Always avoid including two versions of the same libraries, eg. poi 3.7 and poi 3.8. Is this a joke ?
  5. The first versions of Tomcat 8.0 had known problems with Struts2, you should upgrade to the latest (eg. 8.0.39) or, even better, to 8.5.