在Tomcat 7中包含DB2JCC4

9
我刚刚升级到Tomcat v7。我试图在我的Java类需要的lib中包括一个jar。这是DB2JCC4.JAR。我用它来访问IBM大型机上的DB2。在Tomcat6中,它曾经很好地运行。
当我包含这个jar时,就会出现错误,例如:
    Deploying web application directory C:\tomcat7\webapps\dbs
    org.apache.catalina.core.ContainerBase addChildInternal
    SEVERE: ContainerBase.addChild: start: 
    org.apache.catalina.LifecycleException: Failed to start component
    .....

    caused by: org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is 
    not a Java .class file....

我尝试将URIEncoding放入Server.XML中,但这并没有帮助。

当我删除DB2JCC4 jar文件时,就不会出现启动错误。当然,那样我就无法访问DB2!感谢任何建议。

2个回答

14
尝试修改$TOMCAT_HOME/conf/catalina.properties,并将DB2JCC4.jar添加到tomcat.util.scan.DefaultJarScanner.jarsToSkip属性的值中。这用于关闭类路径扫描(在JavaEE 6规范实现中使用)。

是的!这就是要做的事情!我也遇到了同样的问题,这个答案帮助我解决了它。谢谢! - MarcoS
谢谢,异常不再出现了 :) 我本来希望有一种方法可以“修复”JAR文件本身,但这也很好 ;) - Eric

0

如果你想知道为什么出现这个问题而不只是想找到一个解决方法,你可以在这里找到答案。IBM已经承认了这个问题并提供了修复选项。基本上,一些类文件是损坏的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接