将db2jcc4.jar添加到系统类路径时,Tomcat 8.0在jar文件中引发FileNotFoundException,该jar文件没有明显引用我的项目pdq.jar。
除了通过搜索找到以下答案之外,我在系统上的任何位置或可能来自哪里都找不到它。
在这种情况下,我将我的CATALINA_HOME指向了C:\ tomcat8.0 \ apache-tomcat-8.0.41,并且我的项目定义了以下maven依赖项:
<dependency>
<groupId>com.ibm.db2.jcc</groupId>
<artifactId>db2jcc4</artifactId>
<version>10.1</version>
<scope>system</scope>
<systemPath>${env.CATALINA_HOME}/lib/db2jcc4-10.1.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
根据IBM上的这篇知识库文章,问题来自于MANIFEST,其中列出了第三方优化工具pdq.jar。
我的 lib 文件夹中有 db2jcc4.jar 和 db2jcc4.10.1.jar 。
虽然本文建议编辑 db2jcc4.jar 中的 MANIFEST 文件,但版本 10.1 根本不包含此条目。
删除 db2jcc4.jar 解决了我的问题,因此这种情况下的解决方案也可能是将 db2jcc4 从旧版本升级到版本 10.1,或者如果不可能,请按照说明编辑清单文件。
这可能在较新版本的Db2 jcc驱动程序中发生:
从Linux和UNIX或Windows操作系统上的Db2 10.5附带的IBM Data Server Driver for JDBC和SQLJ版本4.16开始,db2jcc4.jar的MANIFEST.MF文件包含对pdq.jar的引用。
IBM支持 提供2个选项:
解决问题为了防止java.io.FileNotFoundException,您可以采取以下措施之一:
编辑MANIFEST.MF文件,然后删除以下行:Class-Path:pdq.jar
编辑Apache Tomcat 的context.xml文件,并添加如下所示的条目以将scanClassPath的值设置为false。
就我个人而言,我更喜欢第二种方法,可以按照以下步骤进行:
<Context>
...
<JarScanner scanClassPath="false" />
...
</Context>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6767 次 |
| 最近记录: |