将JavaMelody更新到最新版本(以前使用版本1.62.0)后,JBoss 6在启动时记录错误。

我在ivy.xml中有两个依赖项

<dependency org="net.bull.javamelody" name="javamelody-core" rev="1.68.0" transitive="false" conf="ear-lib->default"/>
<dependency org="org.jrobin" name="jrobin" rev="1.5.9" transitive="false" conf="ear-lib->default"/>


并且它们都作为application.xml中的模块

<module>
    <java>lib/javamelody-core-1.68.0.jar</java>
</module>
<module>
    <java>lib/jrobin-1.5.9.jar</java>
</module>


在启动时,JBoss 6会引发以下异常:

Error installing to Start: name=vfs:///C:/app/jboss-6.0.0.Final/server/default/deploy/intern.ear_WeldBootstrapBean state=Create: com.google.common.collect.ComputationException: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class net.bull.javamelody.internal.web.pdf.PdfAbstractReport
...
Caused by: org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class net.bull.javamelody.internal.web.pdf.PdfAbstractReport
...
Caused by: java.lang.NoClassDefFoundError: Lcom/lowagie/text/Document;
...
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.Document from BaseClassLoader@2f432a6b{vfs:///C:/app/jboss-6.0.0.Final/server/default/deploy/intern.ear}


如果我将iText添加到ivy.xml和application .xml中,则会收到另一个错误,提示找不到类WriteListener

该问题似乎与PDF报告的引入有关。有没有办法从JavaMelody中排除PDF报告?

最佳答案

我认为您正在使用使用CDI 1.0(而不使用CDI 1.1)的JBoss版本。
从1.66开始,您的JBoss / CDI版本与javamelody之间可能不兼容,因为javamelody中存在beans.xmlMonitoringCdiInterceptor

因此,您可以将JBoss升级到使用CDI 1.1的版本,或者将javamelody降级到1.65.0。

10-07 19:07