Skip to content

Instantly share code, notes, and snippets.

@gotnix
Last active May 5, 2017 10:20
Show Gist options
  • Save gotnix/a395a381ac8d8df2aa8a403cce0d178a to your computer and use it in GitHub Desktop.
Save gotnix/a395a381ac8d8df2aa8a403cce0d178a to your computer and use it in GitHub Desktop.
how to confirm tomcat to skip scanning a jar
05-May-2017 14:43:34.360 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/app/tomcat8_8180_gw/webapps/iFinCarGateway
05-May-2017 14:44:15.104 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/iFinCarGateway]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/iFinCarGateway] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.bouncycastle.asn1.ASN1EncodableVector->org.bouncycastle.asn1.DEREncodableVector->org.bouncycastle.asn1.ASN1EncodableVector]
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2110)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2054)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:2000)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1970)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1923)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1163)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:775)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5105)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 10 more
05-May-2017 14:44:15.106 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Error deploying web application directory /opt/app/tomcat8_8180_gw/webapps/iFinCarGateway
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/iFinCarGateway]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:756)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
05-May-2017 14:44:15.107 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application di
rectory /opt/app/tomcat8_8180_gw/webapps/iFinCarGateway has finished in 40,747 ms
Tomcat version
Using CATALINA_BASE:   /opt/app/tomcat8_8180_gw
Using CATALINA_HOME:   /opt/app/tomcat8_8180_gw
Using CATALINA_TMPDIR: /opt/app/tomcat8_8180_gw/temp
Using JRE_HOME:        /opt/app/jdk
Using CLASSPATH:       /opt/app/tomcat8_8180_gw/bin/bootstrap.jar:/opt/app/tomcat8_8180_gw/bin/tomcat-juli.jar
Using CATALINA_PID:    /opt/app/tomcat8_8180_gw/work/tomcat.pid
Server version: Apache Tomcat/8.5.14
Server built:   Apr 13 2017 12:55:45 UTC
Server number:  8.5.14.0
OS Name:        Linux
OS Version:     2.6.18-348.el5
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation

报错信息请看 catalina.out,时好时坏,把 jar 包升级到 1.56 版本没有上面的报错了, bcprov-jdk15on-156.jar,bcpkix-jdk15on-156.jar。 或者把 bcprov-jdk15on-156.jar 删掉也没有问题。

把 jar 包升级到 1.56 版本没有上面的报错了, bcprov-jdk15on-156.jar 可是我还是没有搞定 tomcat 怎么跳过某个 jar 包不扫描。

试了设置 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 和 Context 都不能跳过 bcprov-jdk15on-156.jar,但是跳过所有 jar 也不会有报错。

server.xml
<Context path="/iFinCarGateway/" containerSciFilter="bcprov-jdk15on-*.jar|org.bouncycastle.asn1.ASN1EncodableVector|org.bounc    ycastle.asn1.DEREncodableVector">

    <JarScanner>
        <JarScanFilter
            pluggabilitySkip="bcprov-jdk15on-*.jar"/>
    </JarScanner>
</Context>
catalina.properties
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\
...
bcprov-jdk15on-*.jar

上面 2 中配置都是无效的,不知道为毛?

但是在 catalina.properties 加上 ,* 跳过所有的 Jar 却可以。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment