Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Headless continuous integration with Jenkins

I’m trying to set up Jenkins on a RackSpace ArchLinux Cloud Server, but I’ve been unable to.

Whenever I try to access Jenkins site, I get this error:

AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"?

java.lang.NullPointerException
    at sun.awt.X11FontManager.getDefaultPlatformFont(X11FontManager.java:779)
    at sun.font.SunFontManager$2.run(SunFontManager.java:428)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.font.SunFontManager.<init>(SunFontManager.java:371)
    at sun.awt.X11FontManager.<init>(X11FontManager.java:32)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at java.lang.Class.newInstance0(Class.java:372)
    at java.lang.Class.newInstance(Class.java:325)
    at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:80)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:71)
    at java.awt.Font.getFont2D(Font.java:489)
    at java.awt.Font.getFamily(Font.java:1186)
    at java.awt.Font.getFamily_NoClientCode(Font.java:1160)
    at java.awt.Font.getFamily(Font.java:1152)
    at java.awt.Font.toString(Font.java:1649)
    at hudson.util.ChartUtil.<clinit>(ChartUtil.java:229)
    at hudson.WebAppMain.contextInitialized(WebAppMain.java:175)
    at winstone.WebAppConfiguration.<init>(WebAppConfiguration.java:897)
    at winstone.HostConfiguration.initWebApp(HostConfiguration.java:131)
    at winstone.HostConfiguration.<init>(HostConfiguration.java:73)
    at winstone.HostGroup.initHost(HostGroup.java:85)
    at winstone.HostGroup.<init>(HostGroup.java:45)
    at winstone.Launcher.<init>(Launcher.java:197)
    at winstone.Launcher.main(Launcher.java:398)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at Main._main(Main.java:268)
    at Main.main(Main.java:96)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.tanukisoftware.wrapper.WrapperJarApp.run(WrapperJarApp.java:394)
    at java.lang.Thread.run(Thread.java:722)

So, what do you think it might be?

I’ve already tried setting JAVA_OPTS environmental variable, to no avail. I also tried executing Java with -Djava.awt.headless=true, or even setting it in conf/wrapper.conf as wrapper.app.parameter.3=-headless.

Any idea how may I tackle this problem? I’m so new at this...

Thanks in advance!

like image 223
Andrés Botero Avatar asked Nov 13 '11 04:11

Andrés Botero


People also ask

Is electron a headless browser?

Electron BrowserBy default, when running cypress run from the CLI, we will launch all browsers headlessly.

Does headless improve performance?

Headless Browsers are Faster than Real Browsers But you will typically see a 2x to 15x faster performance when using a headless browser. So if performance is critical for you, headless browsers may be a way to go.

Is headless faster selenium?

Improved speed and performance Selenium tests can take a while to complete, due to elements on a page that the browser needs to load. Headless testing gets rid of this load time, allowing you to cut your testing times significantly. In our tests with headless testing, we've seen a 30% reduction of test execution times.


4 Answers

On my fedora 17 64Bit machine, I had OpenJDK 1.7 installed and I yum installed Jenkins which was having the same issue. Setting up -Djava.awt.headless=true did not help.

Finally solved the issue by installing dejavu-sans-fonts:

yum install dejavu-sans-fonts
like image 87
Ahsanul Avatar answered Sep 21 '22 22:09

Ahsanul


Finally found a solution.

Believe it or not, it was actually just a matter of installing ttf-dejavu font!

I’m ashamed...

like image 38
Andrés Botero Avatar answered Sep 21 '22 22:09

Andrés Botero


Installation of java-1.6.0-openjdk resulted in the following dependency's:

  • fontconfig
  • libXfont
  • libfontenc
  • ttmkfdir
  • xorg-x11-font-utils
  • xorg-x11-fonts-Type1

After the installation of those packages and a restart of jenkis, everything worked as designed.

like image 36
Zab0815 Avatar answered Sep 22 '22 22:09

Zab0815


Having an ArchLinux 64 bit headless server, I have successfully configured jenkins to work by following steps:

  1. Installed ttf-dejavu package
  2. Installed fontconfig packages
  3. added to /etc/conf.d/tomcat7:

    CATALINA_OPTS="-Djava.awt.headless=true"

like image 32
Illarion Kovalchuk Avatar answered Sep 22 '22 22:09

Illarion Kovalchuk