Jenkins上的性能图导致“无法初始化类org.jfree.chart.JFreeChart”异常

问题描述 投票:9回答:5

当Jenkins尝试生成“性能趋势”图表时,会始终根据原因启动几个例外:“java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart

这就是我做的:

  • 采用了Jenkins,尝试了v1.532.2(稳定版)以及v1.539-SNAPSHOT
  • 没有配置安全性
  • 只需设置我的JDK路径(oracle的jdk1.7.0_51),MAVEN(3.1.1)和GIT(1.8.1.2)
  • 启用这些插件:
  • Checkstyle v3.39
  • 詹金斯报道v1.9.3
  • Findbugs v.51
  • 警告v4.39
  • PMD vz.38
  • 表现v.1.10
  • Jenkins Git客户端v1.6.2
  • Jenkins Git 2.0.1

然后我创建了一个项目,该项目使用插件jmeter-maven-plugin v1.9.0从我的Java webapp成功创建了一个JMeter报告文件,但是在项目页面上没有出现性能趋势图。 Jenkins真的收集了结果,因为它向我显示了响应时间,但无法向我显示图表。有根本原因发布了几个异常:“java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart”。在这里,您将找到完整的StackTrace:http://pastebin.com/uhiNR7XD

詹金斯已经在它的/WEB-INF/lib/上有jcommon-1.0.12.jar和jfreechart-1.0.9.jar。 This other post不适用。

你能帮我吗?

提前致谢!

/天使

jenkins jenkins-plugins
5个回答
12
投票

如果您仍有问题,请尝试评论此行:

assistive_technologies=org.GNOME.Accessibility.AtkWrapper

位于/etc/java-8-openjdk/accessibility.properties。只需在#前面添加一行。


9
投票

Angels Answer是正确的,你必须添加-Djava.awt.headless=true

但是,在我的情况下,这还不够:我在openjdk-8-jre-headless(Debian)上运行Jenkins,它不包含JFreeChart所需的一些库。

解决方案:使用openjdk-jre-8而不是openjdk-jre-8-headless

这是来自搜索引擎的人们的另一个注意事项。


5
投票

解决了!有人帮我解决了这个问题:https://groups.google.com/forum/#!topic/jenkinsci-users/o_Dr7Tn0i3U

这不是詹金斯的错误,而是错过配置。解决方案只是将-Djava.awt.headless=true添加到Jenkin的运行时。

我在我的Tomcat上运行Jenkins作为webapp,然后我将这行添加到我的/opt/tomcat/bin/catalina.sh:CATALINA_OPTS=-Djava.awt.headless=true

我希望你能分享这个解决方案。来自巴塞罗那的干杯。

/天使


1
投票

在Debian 9安装上,我能够通过安装libjfreechart-java软件包来解决这个问题:

sudo apt-get install libjfreechart-java

我在相关的Jenkins错误报告中找到了这个解决方案:JENKINS-39636


0
投票

我的java.awt.headless已经是真的。所以我仔细检查了this link并找到了对我来说非常好的解决方案:

Ubuntu的

sudo apt-get install libfontconfig

CentOS的

yum install libXext libXrender fontconfig libfontconfig.so.1
© www.soinside.com 2019 - 2024. All rights reserved.