Version Java Jenkins
Suite à des mises à jour de Ubuntu
, les variables d'environnement du serveur Tomcat
, des anomalies sont apparues.
Votre avis
Nobody voted on this yet
|
|
Etude
L'erreur a été constatée sur l'affichage du graphique des résultats des tests unitaires. L'image n'est plus disponible.
Comme pour toute image sur une page Web, il est possible d'essayer d'afficher l'image dans un nouvel onglet / nouvelle fenêtre. Dans ce cas, le message d'erreur est affiché avec la trace Java
.
java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart at org.jfree.chart.ChartFactory.createStackedAreaChart(ChartFactory.java:1124) at hudson.tasks.test.AbstractTestResultAction.createChart(AbstractTestResultAction.java:358) at hudson.tasks.test.AbstractTestResultAction.doGraph(AbstractTestResultAction.java:299) at hudson.tasks.test.TestResultProjectAction.doTrend(TestResultProjectAction.java:111) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
Le problème provient donc du chargement de la classe org.jfree.chart.JFreeChart
.
Modifications
La recherche de cette erreur indique principalement un problème de variable d'environnement Java, où il manque le paramètre -Djava.awt.headless=true
. Cependant dans le cadre cette installation, sur une machine Ubuntu
et un serveur Tomcat8
, le paramètre est positionné dans le script de démarrage /etc/init/d/tomcat9
# Default Java options
# Set java.awt.headless=true if JAVA_OPTS is not set so the
# Xalan XSL transformer can work without X11 display on JDK 1.4+
if [ -z "$JAVA_OPTS" ]; then
JAVA_OPTS="-Djava.awt.headless=true"
fi
Or, il se trouve que la version de Java
utilisée correspond à la version libre OpenJDK
. Et par défaut, le paquet openjdk-8-jre-headless
est installé et ne permet pas de charger la classe JFreeChart
.
#sudo dpkg --get-selections | grep openjdk openjdk-8-jre-headless:amd64 install
La solution consiste à installer le paquet openjdk-8-jre
.
#sudo apt-get install openjdk-8-jre Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait The following additional packages will be installed: fonts-dejavu-extra libatk-wrapper-java libatk-wrapper-java-jni libgif7 Les NOUVEAUX paquets suivants seront installés : fonts-dejavu-extra libatk-wrapper-java libatk-wrapper-java-jni libgif7 openjdk-8-jre 0 mis à jour, 5 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 2 114 ko dans les archives. Après cette opération, 7 883 ko d'espace disque supplémentaires seront utilisés.