Could not initialize class sun.awt.X11.XToolkit Error

问题描述

Weblogic应用中,有个上传图片功能,总是在上传时终止执行,无法上传成功。

服务器的Weblogic环境配置:
* jdk1.6.0_18 + linux-64
* Oracle Weblogic Server 10.3.3.0

后台报错信息:

<2015-8-7 下午072408秒 CST> <Error> <HTTP> <BEA-101017> <[ServletContext@21247461[app:img_system module:img_system.war path:/img_system spec-version:null]] Root cause of ServletException.
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at java.awt.Toolkit$2.run(Toolkit.java:834)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:826)
        Truncated. see log file for complete stacktrace
> 

从报错信息分析,是找不到类,无法初始化sun.awt.X11.XToolkit。

解决方案

在Weblogic的启动脚本中,修改Java命令启动选项,增加“-Djava.awt.headless=true”,以启用Headless模式,然后重启Weblogic即可。
其他可能方案:更新jdk,目前环境采用的jdk为jdk1.6.0_18,版本比较旧。

原因分析

java.awt.toolkit和java.awt.graphicsenvironment类中有许多方法,除了对字体,图像和打印的操作外还有调用显示器,键盘和鼠标的方法。对于Linux环境,则需要依赖X-server的支持,然而因为某些原因导致无法初始化而报错。此时,可以采用JRE提供的headless模式(从J2SE 1.4开始Java平台提供了对Headless模式的支持)。
关于Headless模式,是指在缺少显示屏、键盘或鼠标时的系统配置。当系统应用需要自行生成图片时,可能会用到该模式。

延伸阅读
  1. 关于如何在JavaSE平台上使用Headless模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pierre_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值