Java 使用cobertura检测后发生ClassNotFoundException

Java 使用cobertura检测后发生ClassNotFoundException,java,jboss,code-coverage,cobertura,Java,Jboss,Code Coverage,Cobertura,使用JBossAS 7.1.1,我希望在测试我的项目(部署为.war)后获得代码覆盖率 在我启动服务器之前,它似乎一直按预期工作。以下是错误消息: 13:20:49571严重[net.sourceforge.cobertura.coveragedata.TouchCollector](MSC服务线程1-8)注册类时异常:com/project/Creator:java.lang.ClassNotFoundException:com.project.Creator来自本地模块加载器@30c01f1

使用JBossAS 7.1.1,我希望在测试我的项目(部署为.war)后获得代码覆盖率

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

13:20:49571严重[net.sourceforge.cobertura.coveragedata.TouchCollector](MSC服务线程1-8)注册类时异常:com/project/Creator:java.lang.ClassNotFoundException:com.project.Creator来自本地模块加载器@30c01f1c(根:C:\jboss\jboss-as-7.1.1.1.Final\modules)的[模块“org.jboss.as.server:main”
在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”--basedir C:\Jboss\Jboss-as-7.1.1.Final\standalone\deployments project.war--数据文件C:\Jboss\Jboss-as-7.1.1.Final\bin\cobertura.ser--auxClasspath“C:\workspace\Jboss build\src\com\套利\j2ee\common\dto\TypeData.java

这给了我一个错误

java.lang.RuntimeException:java.lang.ClassNotFoundException:com.套利.j2ee.common.dto.TypeData 位于net.sourceforge.cobertura.instrument.CoberturaClassWriter.getCommonSuperClass(CoberturaClassWriter.java:35)

但是,当我启动JBoss时,它不会给出任何错误

但是,当我停止JBoss时,会出现以下错误:

线程“thread-45”java.lang.NoClassDefFoundError中出现错误[stderr]异常:net/sourceforge/cobertura/coveragedata/TouchCollector$ApplyToClassDataLightClassmapListener

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

C:\cobertura\cobertura-2.0.3\cobertura instrument.bat“将仪器添加到存档C:\Jboss\Jboss-as-7.1.1.Final\standalone\deployments\screator.war--includeclass“com.project.*”--数据文件C:\Jboss\Jboss-as-7.1.1.Final\bin\cobertura.ser--auxClasspath“C:.m2\repository\com\project\project-1.jar”

这给了我一个肯定的回答

信息:Cobertura:保存了41个类的信息

现在问题出现在启动JBoss时

注册class:com/project/Creator:java.lang.ClassNotFoundException:com.project.Creator时出现严重的net.sourceforge.cobertura.coveragedata.TouchCollector异常,来自本地模块加载器@30c01f1(根:C:\jboss\jboss-as-7.1.1.Final\modules)的[Module“org.jboss.as.server:main]

等等

我在VM参数中添加了
-Djboss.shutdown.forceHalt=false

非常感谢您的帮助,
谢谢!

您是否尝试过将Cobertura(及其可传递的依赖项)添加到容器的CP中(例如,Tomcat中的
lib/ext
)?谢谢您的关注。我将Cobertura添加到maven配置中,所以现在就可以部署它了。但我在启动JBoss时仍然面临问题。请查看编辑。