我刚刚升级到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!我很感激任何建议。
答案 0 :(得分:14)
尝试更改$TOMCAT_HOME/conf/catalina.properties
并将DB2JCC4.jar
添加到tomcat.util.scan.DefaultJarScanner.jarsToSkip
属性值。它用于关闭类路径扫描(在JavaEE 6规范实现中使用)。
答案 1 :(得分:0)
如果您想知道为什么问题首先发生而不仅仅是一种解决方法,您可以找到答案here。 IBM已经承认了这个问题并提供了修复它的选项。基本上一些类文件已损坏。