[Linux] awf 사용시 Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable. 오류

2019. 11. 27. 20:26개발/Q&A

반응형

현상::

  • 운영하고 있는 서버의 파일 다운로드가 갑자기 안되는 현상이 나타남
Exception in thread "Thread-84" java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.access$100(X11GraphicsEnvironment.java:52)
        at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:155)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
        at sun.font.FontManager.initSGEnv(FontManager.java:1307)
        at sun.font.FontManager.findFont2D(FontManager.java:1984)
        at java.awt.Font.getFont2D(Font.java:455)
        at java.awt.Font.canDisplay(Font.java:1904)
        at java.awt.Font.canDisplayUpTo(Font.java:1970)
        at java.awt.font.TextLayout.singleFont(TextLayout.java:451)
        at java.awt.font.TextLayout.<init>(TextLayout.java:509)
        at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:275)
        at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)
        at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:79)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:656)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:677)
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:83)
        at kr.co.postman.task.DownloadTask.downloadSendlist(DownloadTask.java:747)
        at kr.co.postman.task.DownloadTask.downloadMember(DownloadTask.java:208)
        at kr.co.postman.task.DownloadTask.run(DownloadTask.java:140)

원인::

  • 이것은 일종의 JDK의 버그이며 (SUN측이 말했다) BufferedImage 를 생성하고 실제로 Graphics 객체를 얻어오기 위해 getGraphics나 createGraphics 메소드를부를때, 실제로 display하거나 mouse, keyboard 자원을 하나도 쓰지 않을 것임에도불구하고 내부적으로 AWT Toolkit이 그것들에 대한 자원을 얻어오게 되어있었기 때문이다.

해결법::

  • tomcat catalina.sh 파일에 java -Djava.awt.headless=true 의 옵션을 준다.
반응형