Skip to content

Instantly share code, notes, and snippets.

@gotnix
Last active August 31, 2015 03:03
Show Gist options
  • Select an option

  • Save gotnix/1bb9802f306e55ad93e5 to your computer and use it in GitHub Desktop.

Select an option

Save gotnix/1bb9802f306e55ad93e5 to your computer and use it in GitHub Desktop.
Tomcat 加载共享 jar
centos 安装Java、Tomcat 7(需要 EPEL 软件源):
yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-devel log4j tomcat tomcat-admin-webapps
tomcat 配置参考:
http://my.oschina.net/dongming/blog/64142
https://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html
通过 jdk 参数配置 `-Djava.library.path=/usr/local/share/java/lib' 能正常工作,在 catalina.properties 文件中配置
shared.loader=/usr/local/share/java/lib/*.jar 报错如下文。版本信息如下:
# 系统发行版本号:
82 => # cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m
# Java 版本号:
83 => # java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (rhel-2.6.1.3.el6_7-x86_64 u85-b01)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
# Tomcat 版本号:
84 => # /etc/init.d/tomcat version
Server version: Apache Tomcat/7.0.33
Server built: Apr 30 2014 09:16:58
Server number: 7.0.33.0
OS Name: Linux
OS Version: 2.6.32-573.3.1.el6.x86_64
Architecture: amd64
JVM Version: 1.7.0_85-mockbuild_2015_07_25_13_10-b00
JVM Vendor: Oracle Corporation
------------ catalina.out 输出如下 ------------
Aug 28, 2015 11:30:15 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Aug 28, 2015 11:30:15 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 28, 2015 11:30:15 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 28, 2015 11:30:15 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1104 ms
Aug 28, 2015 11:30:15 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 28, 2015 11:30:15 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.33
Aug 28, 2015 11:30:15 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /var/lib/tomcat/webapps/ROOT.war
Aug 28, 2015 11:30:16 AM org.apache.tomcat.util.scan.StandardJarScanner scan
WARNING: Failed to scan [file:/usr/local/share/java/lib/asm-3.2.jar] from classloader hierarchy
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:91)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:41)
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
at org.apache.catalina.startup.ContextConfig$FragmentJarScannerCallback.scan(ContextConfig.java:2620)
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:204)
at org.apache.catalina.startup.ContextConfig.processJarsForWebFragments(ContextConfig.java:1917)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1268)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
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:5173)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Aug 28, 2015 11:30:16 AM org.apache.catalina.startup.ContextConfig processServletContainerInitializers
SEVERE: Failed to process JAR found at URL [jar:file:/usr/local/share/java/lib/asm-3.2.jar!/] for ServletContainerInitializers for context with name []
Aug 28, 2015 11:30:16 AM org.apache.catalina.startup.ContextConfig configureStart
SEVERE: Marking this application unavailable due to previous error(s)
Aug 28, 2015 11:30:17 AM org.apache.catalina.startup.TldConfig tldScanJar
WARNING: Failed to process JAR [jar:file:/usr/local/share/java/lib/asm-3.2.jar!/] for TLD files
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.jar.JarFile.<init>(JarFile.java:154)
at java.util.jar.JarFile.<init>(JarFile.java:91)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
at org.apache.tomcat.util.scan.FileUrlJar.<init>(FileUrlJar.java:41)
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:34)
at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:487)
at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:58)
at org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:303)
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:241)
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:204)
at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:277)
at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:567)
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:5173)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Aug 28, 2015 11:30:17 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error getConfigured
Aug 28, 2015 11:30:17 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [] startup failed due to previous errors
Aug 28, 2015 11:30:17 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat/webapps/host-manager
Aug 28, 2015 11:30:17 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /var/lib/tomcat/webapps/manager
Aug 28, 2015 11:30:17 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 28, 2015 11:30:17 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 28, 2015 11:30:17 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1716 ms
@gotnix

gotnix commented Aug 31, 2015

Copy link
Copy Markdown
Author

问题已解决,asm-3.2.jar 这个包的压缩格式有问题,

112 => # file asm-3.2.jar
asm-3.2.jar: bzip2 compressed data, block size = 900k

换成 Zip 的解决:

117 => # file asm-3.2.jar
asm-3.2.jar: Zip archive data, at least v2.0 to extract

💥 手工管理 Jar 包留隐患!

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