Headless continuous integration with Jenkins

匿名 (未验证) 提交于 2019-12-03 02:14:01

问题:

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!

回答1:

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 


回答2:

Finally found a solution.

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

I’m ashamed...



回答3:

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.



回答4:

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"



回答5:

pacman -S ttf-dejavu 

fixed it for my Archlinux box



回答6:

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.



回答7:

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



回答8:

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.



回答9:

Installing openjdk-7-jre-headless and ttf-dejavu made the difference for me on Ubuntu 12.04 LTC (Precise). The fonts are referenced by the font setup of the Java installation and the OpenJDK 7 package depends on libfontconfig1 and will thus actually use the fonts.

I'm using Jenkins from http://pkg.jenkins-ci.org/debian/ and by default you will get openjdk-6-jre-headless since the jenkins package depends on default-jre-headless, which in turn pulls in openjdk-6-jre-headless.

You can swap the packages using

$ aptitude install openjdk-7-jre-headless $ aptitude remove default-jre-headless openjdk-6-jre-headless 


回答10:

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



回答11:

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



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!