MuleESB - 无法初始化类sun.awt.SunToolkit

时间:2013-10-30 16:55:15

标签: java web-services mule

我试图通过cxf重现创建一个web服务,遵循Brigilin Stanley在这里写的例子:http://confluex.com/blog/jax-ws-service-with-cxf-in-mule/

这在Mule Studio中运行良好,但是当我部署到linux red Hat服务器时,我遇到了一个奇怪的问题:

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.SunToolkit
        at sun.awt.AppContext$2.run(AppContext.java:271)
        at sun.awt.AppContext$2.run(AppContext.java:260)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.AppContext.initMainAppContext(AppContext.java:260)
        at sun.awt.AppContext.access$200(AppContext.java:133)
        at sun.awt.AppContext$3.run(AppContext.java:316)
        at sun.awt.AppContext$3.run(AppContext.java:298)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.AppContext.getAppContext(AppContext.java:297)
        at sun.awt.AppContext$6.getContext(AppContext.java:839)
        at sun.misc.SharedSecrets.getJavaAWTAccess(SharedSecrets.java:201)
        at java.util.TimeZone.getDefaultInAppContext(TimeZone.java:734)
        at java.util.TimeZone.getDefaultRef(TimeZone.java:630)
        at java.util.Calendar.getInstance(Calendar.java:968)
        at org.apache.log4j.helpers.AbsoluteTimeDateFormat.<init>(AbsoluteTimeDa
teFormat.java:62)
        at org.apache.log4j.helpers.ISO8601DateFormat.<init>(ISO8601DateFormat.j
ava:46)
        at org.apache.log4j.helpers.PatternParser.finalizeConverter(PatternParse
r.java:256)
        at org.apache.log4j.helpers.PatternParser.parse(PatternParser.java:186)
        at org.apache.log4j.PatternLayout.<init>(PatternLayout.java:438)

有什么想法吗? 感谢

3 个答案:

答案 0 :(得分:4)

此异常通常表示服务器没有X服务器。要告诉awt您处于“无头”服务器中,请使用此Java系统属性:-Djava.awt.headless=true

答案 1 :(得分:1)

这个问题 应该表明你缺少无头参数,但对我来说问题是我运行的是xvfb-run(因此有一个“显示”),但仍然得到了错误

解决方案是libxtst6缺少依赖项,安装解决了问题:

apt-get install libxtst6

答案 2 :(得分:-1)

发生在由以下情况发生:

  

java.lang.UnsatisfiedLinkError中:   /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/lwawt/liblwawt.dylib:   dlopen的(/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/lwawt/liblwawt.dylib,   1):未加载库:@ rpath / libosxapp.dylib引用自:   /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/lwawt/liblwawt.dylib   原因:未找到图像

问题是由于Mac OS的更新主要影响Java使用的DLL文件。已经发现在系统上更新的Java版本以及其他应用程序(WebSense,其他)都会出现此问题。

修复方法是复制应用程序尝试引用的libosxapp.dylib文件,方法是将文件复制到liblwawt.dylib所在的同一目录(更改Java版本以匹配您自己的版本):

以下是修复:

sudo cp /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/jre/lib/libosxapp.dylib lwawt/libosxapp.dylib