Tomcat7关机期间的Cobertura NoClassDefFoundError错误
我正在使用最新的Cobertura 2.0 jar,并且已经完成了这里定义的设置 在执行测试用例后,当我试图关闭tomcat(7版)以收集覆盖率数据时,出现以下错误:Tomcat7关机期间的Cobertura NoClassDefFoundError错误,tomcat,cobertura,Tomcat,Cobertura,我正在使用最新的Cobertura 2.0 jar,并且已经完成了这里定义的设置 在执行测试用例后,当我试图关闭tomcat(7版)以收集覆盖率数据时,出现以下错误: Exception in thread "Thread-2" java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/TouchCollector$ApplyToClassDataLightClassmapListener at
Exception in thread "Thread-2" java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/TouchCollector$ApplyToClassDataLightClassmapListener
at net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesToSingleClassOnProjectData(TouchCollector.java:70)
at net.sourceforge.cobertura.coveragedata.TouchCollector.applyTouchesOnProjectData(TouchCollector.java:58)
at net.sourceforge.cobertura.coveragedata.ProjectData.saveGlobalProjectData(ProjectData.java:324)
at net.sourceforge.cobertura.coveragedata.SaveTimer.run(SaveTimer.java:34)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.TouchCollector$ApplyToClassDataLightClassmapListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 5 more
一些补充意见
在进一步的试验和错误中,它看起来与关机挂钩有关。我没有使用
WEB-INF/lib
而是将cobertura.jar
移动到tomcat7/lib
,这意味着jar现在可以使用,直到tomcat关闭的晚些时候。结果,前面的Cobertura NoClassDef错误消失了,但我在应用程序中的类中得到了NoClassDef错误(可能是因为Cobertura开始尝试为每个类编写覆盖率数据)。cobertura线程崩溃,ser文件未更新。我认为这是cobertura中的一个问题:
您能试试2.0.1版吗?它包含一些额外的修复程序。