Search code examples
jenkinsjenkins-plugins

Performance graphs on Jenkins causing "Could not initialize class org.jfree.chart.JFreeChart" exceptions


When Jenkins tries to generate the Performance Trends graphs there launches several exceptions always with root cause: "java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart"

This is what I did:

  • desployed Jenkins , tried with v1.532.2 (stable) and also with v1.539-SNAPSHOT
    • didn't configured security
    • just set paths to my JDK (oracle's jdk1.7.0_51), MAVEN (3.1.1) and GIT (1.8.1.2)
  • enabled these plugins:
    • Checkstyle v3.39
    • Jenkins Cobertura v1.9.3
    • FindBugs v4.51
    • Warnings v4.39
    • PMD v3.38
    • Performance v.1.10
    • Jenkins Git client v1.6.2
    • Jenkins Git 2.0.1

Then I created a project which successfully creates a JMeter report file from my Java webapp using the plugin jmeter-maven-plugin v1.9.0, but there doesn't appear the Performance Trend graphs on the project's page. Jenkins really gathers the results because it shows me the response times, but can't show me the graphs. There launches several Exceptions always with root cause: "java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart" . Here you will find a complete StackTrace: http://pastebin.com/uhiNR7XD

Jenkins already has jcommon-1.0.12.jar and jfreechart-1.0.9.jar at it's /WEB-INF/lib/ . This other post doesn't apply.

Can you help me, please?

Thanks in advance!

/ Angel


Solution

  • Solved! Somebody helped me to solve it here : https://groups.google.com/forum/#!topic/jenkinsci-users/o_Dr7Tn0i3U

    It's not a bug in Jenkins but a miss-configuration. The solution is just adding -Djava.awt.headless=true to Jenkin's runtime.

    I'm running Jenkins as a webapp on my Tomcat, then I just added this line to my /opt/tomcat/bin/catalina.sh : CATALINA_OPTS=-Djava.awt.headless=true

    I wanted you to share this solution. Cheers from Barcelona.

    / Angel