Headless continuous integration with Jenkins

2019-01-17 15:56发布

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!

11条回答
一纸荒年 Trace。
2楼-- · 2019-01-17 16:34

On Linux Server release 6.2 (Santiago) , you just need to specify below command.

export CATALINA_OPTS="-DJENKINS_HOME=/opt/itmsetup/apache-tomcat-6.0.37/jenkins -Xmx750m -Djava.awt.headless=true"                           

this has solved my problem.

查看更多
乱世女痞
3楼-- · 2019-01-17 16:39

By adding CATALINA_OPTS="-Djava.awt.headless=true" in setclasspath.sh file of tomcat/bin directory solved the problem.

查看更多
ゆ 、 Hurt°
4楼-- · 2019-01-17 16:40

See the wiki page on this topic. Also cf. PR 538.

查看更多
唯我独甜
5楼-- · 2019-01-17 16:44

I had the same problem.
I'm using MobaXterm as a terminal for my linux account, and for me the solution was in MobaXterm. I had to enable X11 under Settings --> Configurations.

查看更多
等我变得足够好
6楼-- · 2019-01-17 16:44

For me installing the fonts didn't help at all. For me it actually missed the fontconfig package.

Details: http://vault-tec.info/post/98877792626/jenkins-service-unavailable

查看更多
Animai°情兽
7楼-- · 2019-01-17 16:45

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.

查看更多
登录 后发表回答