与詹金斯无头的持续整合

时间:2011-11-13 04:28:41

标签: continuous-integration jenkins

我正在尝试在RackSpace ArchLinux云服务器上设置Jenkins,但我一直无法。

每当我尝试访问Jenkins网站时,都会收到此错误:

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)

那么,您认为它可能是什么?

我已经尝试过设置JAVA_OPTS环境变量,但无济于事。我也尝试用-Djava.awt.headless=true执行Java,甚至在conf / wrapper.conf中将其设置为wrapper.app.parameter.3 = -headless。

我知道如何解决这个问题?我对此很新......

提前致谢!

11 个答案:

答案 0 :(得分:30)

在我的fedora 17 64Bit机器上,我安装了OpenJDK 1.7并且我安装了Jenkins,它有同样的问题。设置-Djava.awt.headless = true没有帮助。

最后通过安装dejavu-sans-fonts解决了这个问题:

yum install dejavu-sans-fonts

答案 1 :(得分:23)

Finally found a solution

信不信由你,实际上只是安装ttf-dejavu字体的问题!

我很惭愧......

答案 2 :(得分:8)

安装 java-1.6.0-openjdk 导致以下依赖项:

  • 的fontconfig
  • libXfont
  • libfontenc
  • ttmkfdir
  • 的xorg-X11-字体utils的
  • 的xorg-X11-字体-类型1

在安装这些软件包并重新启动 jenkis 后,一切都按设计工作。

答案 3 :(得分:4)

拥有ArchLinux 64位无头服务器,我已按照以下步骤成功配置jenkins:

  1. 已安装ttf-dejavu软件包
  2. 已安装的fontconfig包
  3. 已添加到/etc/conf.d/tomcat7:

    CATALINA_OPTS = “ - Djava.awt.headless =真”

答案 4 :(得分:1)

pacman -S ttf-dejavu

修复了我的Archlinux框

答案 5 :(得分:1)

我遇到了同样的问题 我使用MobaXterm作为我的linux帐户的终端,对我来说,解决方案是在MobaXterm中。我必须在设置 - &gt;下启用X11配置。

答案 6 :(得分:1)

对我来说,安装字体根本没用。对我来说,它实际上错过了fontconfig包。

详细信息:http://vault-tec.info/post/98877792626/jenkins-service-unavailable

答案 7 :(得分:0)

在Linux Server 6.2版(圣地亚哥)上,您只需指定以下命令。

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

这解决了我的问题。

答案 8 :(得分:0)

在Ubuntu 12.04 LTC(Precise)上安装openjdk-7-jre-headlessttf-dejavu对我有所帮助。字体由Java安装的字体设置引用,OpenJDK 7包依赖于libfontconfig1,因此实际上将使用字体。

我正在使用来自http://pkg.jenkins-ci.org/debian/的Jenkins,默认情况下,您会获得openjdk-6-jre-headless,因为jenkins包取决于default-jre-headlessopenjdk-6-jre-headless依次提取$ aptitude install openjdk-7-jre-headless $ aptitude remove default-jre-headless openjdk-6-jre-headless }。

您可以使用

交换软件包
{{1}}

答案 9 :(得分:0)

请参阅此主题的wiki page。也参考PR 538

答案 10 :(得分:-1)

CATALINA_OPTS="-Djava.awt.headless=true"目录的setclasspath.sh文件中添加tomcat/bin解决了问题。