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



我正在尝试按照Brigilin Stanley在这里编写的示例通过cxf重现创建Web服务: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)

有什么想法吗?谢谢

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

这个问题应该表明你错过了无头参数,但对我来说,问题是我正在使用 xvfb-run 运行(因此有一个"显示"),但仍然得到错误。

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

apt-get install libxtst6

这发生在 原因:

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

最新更新