weblogic环境,应用上传图片报Could not initialize class sun.awt.X11.XToolkit

weblogic环境,应用上传图片报Could not initialize class sun.awt.X11.XToolkit

大家好,又见面了,我是全栈君。

问题描写叙述

遇到的问题是在weblogic环境,应用在上传图片的时候报Could not initialize class sun.awt.X11.XToolkit 错误。

详细错误例如以下

17:57:02 [AWT-EventQueue-2] DEBUG - Leaving class nc.ui.hi.psndoc.action.SavePsndocAction.actionPerformed 
Exception in thread "AWT-EventQueue-2" 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)
	at javax.swing.ImageIcon.<init>(ImageIcon.java:236)
	at nc.pub.tools.VOUtils.transPreviewPhoto(VOUtils.java:212)
	at nc.impl.hi.psndoc.PsndocValidator.setPreviewPhoto(PsndocValidator.java:1338)
	at nc.impl.hi.psndoc.PsndocValidator.adjustPsndoc(PsndocValidator.java:1320)
	at nc.impl.hi.psndoc.PsndocValidator.validate(PsndocValidator.java:819)
	at nc.impl.hi.psndoc.PsndocServiceImpl.savePsndoc(PsndocServiceImpl.java:1616)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at nc.bs.framework.aop.rt.MethodProceedingJoinpoint$3.invoke(MethodProceedingJoinpoint.java:74)
	at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:184)
	at nc.bs.framework.server.SecurityAspect.aroundMethod1(SecurityAspect.java:45)
	at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at nc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:182)
	at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:129)
	at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:135)
	at nc.bs.aop.log.BusilogAspect.aroundMethod(BusilogAspect.java:75)
	at sun.reflect.GeneratedMethodAccessor1769.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at nc.bs.framework.aop.rt.AdviceHolder.invoke(AdviceHolder.java:182)
	at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:129)
	at nc.bs.framework.aop.rt.MethodProceedingJoinpoint.proceed(MethodProceedingJoinpoint.java:135)
	at nc.bs.framework.aop.rt.AspectedProxy.invoke(AspectedProxy.java:59)
	at $Proxy519.savePsndoc(Unknown Source)
	at nc.itf.hr.hi.HRhiEJBEjbBean.savePsndoc(HRhiEJBEjbBean.java:2812)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
	at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
	at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
	at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
	at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
	at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy514.savePsndoc(Unknown Source)

解决的方法

在启动javaserver的时候。在启动參数中增加下面參数

-Djava.awt.headless=true

headless问题探讨

关于javaserver的headless模式。oracle官网的说明为:

http://www.oracle.com/technetwork/articles/javase/headless-136834.html

当中非常多概念我也不是非常理解

大致意思就是,在javaserver端,有很多图形界面的处理函数。须要调用显示器,鼠标键盘这些设备,但有些处理函数则不须要。假设设置了这个headless之后。图形界面的处理和渲染是分开的,用于生成图片的工作放在server端进行,生成后将编码传到client,再在client进行渲染和显示。

这主要用了server端的高计算能力。然后把须要调用显示器相关的工作传到client去运行。

以上的错误本身是要初始化X11server。然后用X11的工具箱去做图形生成计算这等事。可是X11初始化失败。应该是X11的安装环境有问题,于是能够设置java參数

-Djava.awt.headless=true

这个參数。使用java自带的这个server工具箱。

以上是我的理解,对错有待验证。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116438.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 子网划分和计算方法(附习题详解)

    子网划分和计算方法(附习题详解)一.子网划分作用1.计算网络号,通过网络号选择正确的网络设备连接终端设备1)清楚IP地址四点段点分十进制数和子网掩码,对应的网络号是什么2)交换机是用来连接相同网络的设备,路由器是用来连接不同网段的设备网络号一样的,即在相同网段,网络号不一样的,即不同网段3)计算方法把十进制数的IP地址换算成二进制数,把子网掩码也由十进制数换算成二进制数,两对二进制数对齐做“与”运算,即可得出网络号。2.根据网络的规模,可以对局域网(内网)进行网络地址规划二.IP地址格…

    2022年6月27日
    33
  • Idea激活码永久有效Idea2021.3.3激活码教程-持续更新,一步到位[通俗易懂]

    Idea激活码永久有效Idea2021.3.3激活码教程-持续更新,一步到位[通俗易懂]Idea激活码永久有效2021.3.3激活码教程-Windows版永久激活-持续更新,Idea激活码2021.3.3成功激活

    2022年6月17日
    48
  • 去重 数据库_数据库数据怎么去重

    去重 数据库_数据库数据怎么去重setnamesutf8;selectcatidfromsupe_categorieswherename=’金融’;得出catid;createtablemultmpselect*fromsupe_spaceitemswherecatidin(selectcatidfromsupe_categorieswherename=’金融’)…

    2022年10月1日
    2
  • Promise是什么?Promise怎么使用?回调地狱[通俗易懂]

    Promise是什么?Promise怎么使用?回调地狱[通俗易懂]1、Promise的概念Promise是ES6提供的原生的类(构造函数),用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作)2、Promise的两个特点:1)、对象的状态不受外界影响。Promise有三种状态:Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejected(已失败)。2)、一旦状态改变,就不会再变状态改变,只有两种可能:从Pending变为Resolved和从Pending变为Reje

    2022年6月4日
    41
  • 《前端运维》一、Linux基础–02用户与权限

    其实说真的,这些基础挺枯燥的,内容呢绝大多数都是些静态的。上一篇文章我们学习了基本的指令和vim编辑器的操作方法。这篇文章我们主要来学习下Linux中用户的概念和权限相关的知识。一、用户与用户组

    2022年3月25日
    43
  • 常用的免费好用的DNS有哪些?

    常用的免费好用的DNS有哪些?阿酷TONY原创文章关键词:免费dns、百度dns、阿里dns、114dns、GoogleDNS2019-1-24DNS(DomainNameServer,域名服务器)是进行域名(domainname)和与之相对应的IP地址(IPaddress)转换的服务器。DNS中保存了一张域名(domainname)和与之相对应的IP地址(IPaddress)的表,以解析…

    2022年6月7日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号