一、前情提要
操作系統:Windows Server 2008 R2,JDK版本:1.6.0_45,應用容器:JBoss 4.2.3 GA。所部署的應用均為Web型項目,沒有任何圖形相關的項目。
二、症狀診斷
查看JBoss的運行日志,經常會發現如下錯誤日志:
10:10:54,142 ERROR [STDERR] Exception in thread "AWT-EventQueue-0" 10:10:54,156 ERROR [STDERR] java.lang.ClassCastException: sun.java2d.HeadlessGraphicsEnvironment cannot be cast to sun.a wt.Win32GraphicsEnvironment 10:10:54,158 ERROR [STDERR] at sun.awt.windows.WToolkit$3.run(WToolkit.java:737) 10:10:54,159 ERROR [STDERR] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 10:10:54,162 ERROR [STDERR] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672) 10:10:54,167 ERROR [STDERR] at java.awt.EventQueue.access$400(EventQueue.java:81) 10:10:54,168 ERROR [STDERR] at java.awt.EventQueue$2.run(EventQueue.java:633) 10:10:54,168 ERROR [STDERR] at java.awt.EventQueue$2.run(EventQueue.java:631) 10:10:54,170 ERROR [STDERR] at java.security.AccessController.doPrivileged(Native Method) 10:10:54,170 ERROR [STDERR] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.jav a:87) 10:10:54,173 ERROR [STDERR] at java.awt.EventQueue.dispatchEvent(EventQueue.java:642) 10:10:54,173 ERROR [STDERR] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 10:10:54,176 ERROR [STDERR] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 10:10:54,176 ERROR [STDERR] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 10:10:54,178 ERROR [STDERR] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 10:10:54,179 ERROR [STDERR] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 10:10:54,179 ERROR [STDERR] at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
作為運維看到錯誤日志都是很不爽的,所以我飛要消除之!
三、資料查找
Google上查到兩份資料,很有用,按照其中說明,去掉了-Djava.awt.headless = true,在我本機測試沒有問題,將在服務器上使用,並繼續觀察。
資料一:https://confluence.atlassian.com/fishkb/getting-a-sun-java2d-headlessgraphicsenvironment-cannot-be-cast-to-sun-awt-win32graphicsenvironment-error-on-startup-178259867.html
資料二:http://dikar.iteye.com/blog/1417625