使用cobertura进行检测后的ClassNotFoundException

时间:2014-01-24 12:37:34

标签: java jboss code-coverage cobertura

使用JBoss AS 7.1.1我希望在测试项目后获得代码覆盖率,部署为.war。

它似乎按预期工作,直到我启动服务器。以下是错误消息:

  

13:20:49,571严重[net.sourceforge.cobertura.coveragedata.TouchCollector](MSC服务主题1-8)注册类时的异常:com / project / Creator:java.lang.ClassNotFoundException:com.project.Creator来自[Module“org.jboss.as.server:main”来自本地模块加载器@ 30c01f1c(roots:C:\ Jboss \ jboss-as-7.1.1.Final \ modules)]
          在org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)[jboss-modules.jar:1.1.1.GA]
          在

一个重要的部分可能是没有使用--auxClasspath参数,由于依赖性,我确实因为这个类而出错。这应该通过上面提到的论证来解决。

编辑:

有两种情况我会遇到问题。

在检测期间,使用以下命令进行检测

  

C:\ cobertura \ cobertura-2.0.3 \ cobertura-instrument.bat“ - baseased C:\ Jboss \ jboss-as-7.1.1.Final \ standalone \ deployments project.war --datafile C:\ Jboss \ jboss-as-7.1.1.Final \ bin \ cobertura.ser --auxClasspath“”C:\ workspace \ jboss-build \ src \ com \ arbitrage \ j2ee \ common \ dto \ TypeData.java

给了我错误

  

java.lang.RuntimeException:java.lang.ClassNotFoundException:com.arbitrage.j2ee.common.dto.TypeData       at net.sourceforge.cobertura.instrument.CoberturaClassWriter.getCommonSuperClass(CoberturaClassWriter.java:35)

但是,当我启动JBoss时,它会这样做而不会出现任何错误。

但是,当我停止JBoss时,我收到了这个错误:

  

ERROR [stderr]线程“Thread-45”中的异常java.lang.NoClassDefFoundError:net / sourceforge / cobertura / coveragedata / TouchCollector $ ApplyToClassDataLightClassmapListener

在第二种情况下,仪器与以下命令配合良好

  

C:\ cobertura \ cobertura-2.0.3 \ cobertura-instrument.bat“addInstrumentationToArchive C:\ Jboss \ jboss-as-7.1.1.Final \ standalone \ deployments \ screator.war --includeClasses”com.project 。*“ - datafile C:\ Jboss \ jboss-as-7.1.1.Final \ bin \ cobertura.ser --auxClasspath”C:.m2 \ repository \ com \ project \ 1 \ project-1.jar

这给了我一个好的

  

信息:Cobertura:保存了41个班级的信息。

现在启动JBoss时会出现问题

  

SEVERE net.sourceforge.cobertura.coveragedata.TouchCollector注册类时的异常:com / project / Creator:java.lang.ClassNotFoundException:com.project.Creator from [Module“org.jboss.as.server:main”from本地模块加载器@ 30c01f1(根:C:\ Jboss \ jboss-as-7.1.1.Final \ modules)]。

等等。

我已将-Djboss.shutdown.forceHalt=false添加到VM参数中。

非常感谢帮助, 谢谢!

0 个答案:

没有答案