Tomcat 8.5.15 找不到 jcifs.jar
Posted
技术标签:
【中文标题】Tomcat 8.5.15 找不到 jcifs.jar【英文标题】:Tomcat 8.5.15 unable to find jcifs.jar 【发布时间】:2017-12-25 15:42:59 【问题描述】:最近我们从 apache-tomcat-7.0.76-x64 升级到 apache-tomcat-8.5.15-x64 安装是windows上的标准安装 我们在库中添加的其他 jar 包是:
-
axis.jar -- 一个 Apache eXtensible Interaction System 一个基于 XML 的 Web 服务框架
commons-logging-api-1.1.1.jar -- 用于日志记录
jtds-1.2.2.jar -- Microsoft SQL Server 的 JDBC 3.0 驱动程序
ojdbc6.jar -- 驱动 Oracle 数据库
xercesImpl.jar -- 用于 xml 解析
xml-apis.jar -- 用于 xml 解析
下面是我启动tomcat时看到的错误
19-Jul-2017 19:23:22.146 WARNING [localhost-startStop-1] org.apache.tomcat.util.scan.StandardJarScanner.scan Failed to scan [file:/D:/Compass8.8/apache-tomcat-8.5.15-x64-Compass881-18080/lib/jcifs.jar] from classloader hierarchy
java.io.FileNotFoundException: D:\Compass8.8\apache-tomcat-8.5.15-x64-Compass881-18080\lib\jcifs.jar (The system cannot find the file specified)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:219)
at java.util.zip.ZipFile.<init>(ZipFile.java:149)
at java.util.jar.JarFile.<init>(JarFile.java:166)
at java.util.jar.JarFile.<init>(JarFile.java:130)
at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:60)
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:338)
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:288)
at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)
at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104)
at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
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:745)
当我检查时,我没有在 tomcat 安装目录中找到任何对 jcifs 的引用。
【问题讨论】:
【参考方案1】:你的问题是 jtds。如果您查看 jtds jar 中的 manifest.mf 文件,您会看到它正在其类路径中查找 jcifs.jar。
如果您不打算使用命名管道连接到 SQL Server,那么您的类路径中不需要 jcifs.jar。
Tomcat 的修复如下:
该错误来自 Tomcat 试图扫描 jcifs.jar 以查找 TLD。解决方法是将 jcifs.jar 添加到 catalina.properties 中的 tomcat.util.scan.StandardJarScanFilter.jarsToSkip 属性中。
【讨论】:
以上是关于Tomcat 8.5.15 找不到 jcifs.jar的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat 8.5.15对ubuntu 16内存不足的错误
tomcat之 JDK8.0安装tomcat-8.5.15安装