我试图通过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)
有什么想法吗? 感谢
答案 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