나의 개발 일상 기록
[Error] java.lang.NoClassDefFoundError : sun.awt.x11GraphicsEnvironment 본문
[Error] java.lang.NoClassDefFoundError : sun.awt.x11GraphicsEnvironment
느린 거북이 2021. 4. 19. 09:32리눅스 서버에 Admin 컨테이너에서 Image 저장 시 갑작스럽게 java.lang.NoClassDefFoundError : sun.awt.x11GraphicsEnvironment 에레가 발생하였다. 해당 에러가 발생하는 원인에 대하여 찾아보니
일종의 JDK의 버그였습니다. 원인은 자바가 BufferedImage를 생성하고 실제로 Graphics 객체를 얻어오기 위해 getGrahics나 createGraphics 메소드를 부를 때, 실제로 display 하거나 mouse, keyboard 자원을 하나도 쓰지 않을
것임에도 불구하고 내부적으로 AWT Tollkit이 그것들에 대한 자원을 얻어오게 되어있었기 때문입니다.
해결방법은 톰캣같은 경우는 catalina.sh 파일 제일 상단에
CATALINA_OPTS="-Djava.awt.headless=true" 이 부분을 추가 해주시면
ps -eaf | grep java 로 확인해 보면 -Djava.awt.headless=true 추가되어있는 것을 확인할수 있습니다.
제우스 같은 경우에는 config 디렉토리를 찾아보시면 JEUSMain.xml파일이 있는데 아래와 같이 수정해 주시면 됩니다.
|
<jeus-system xmlns="http://www.tmaxsoft.com/xml/ns/jeus"> <node> ... ... <engine-container> <name>testContainer</name> <id>121</id> <base-port>11011</base-port> <command-option>-Xms256m -Xmx512m -Djava.awt.headless=true</command-option> <engine-command> <type>servlet</type> <name>test</name> </engine-command> <sequential-start>true</sequential-start> </engine-container> ... ... </jeus-system> |
위의 방법이 번거롭다고 생각이 되시면 JEUS WebAdmin에서 아래의 그림과 같이 추가를 해주시면 됩니다.

'Spring' 카테고리의 다른 글
| [FCM] FireBase를 활용한 Web Push Alarm (0) | 2022.02.26 |
|---|---|
| [Spring] TDD(Test-Driven-Development) (0) | 2022.02.22 |
| [Kafka] Kafka Producer&Consumer Application (0) | 2021.10.05 |
| [Kafka] Kafka란? (0) | 2021.10.01 |
| [Spring] 스프링 AOP(Aspect Oriented Programming) (0) | 2021.05.06 |