使用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参数中。
非常感谢帮助, 谢谢!