일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- jenkins
- AWS
- 젠킨스
- eks
- kubernetes
- 오픈스택
- eslint
- OOP
- centos7
- server base computing
- 마이크로서비스
- fargate
- 쿠버네티스
- no-param-reassign
- serverless
- app&desk
- rocky
- 로키
- 설치
- 가상 데스크탑 환경
- sagemaker
- openstack
- 프로젝트
- xenserver app&desk
- 객체지향
- IaaS
- 구축
- microservices
- 서버 베이스 컴퓨팅
- 머신러닝
- Today
- Total
IT
[젠킨스] 이슈 - 젠킨스 시작 시 Font 관련 에러 발생 (feat. NullPointerException) 본문
[젠킨스] 이슈 - 젠킨스 시작 시 Font 관련 에러 발생 (feat. NullPointerException)
abcee 2020. 3. 30. 22:54Issue (특이 사항)
젠킨스(jenkins)는 jetty was engine 기반에서 돌아가는 서비스로 java runtime 환경을 필요로 한다. 또한 jenkins 2.46 후에 나온 버전들은 java 8 or 11 을 요구한다.
리눅스 환경에서 리포지토리(repository)의 패키지를 통한 java 설치가 아닌 바이너리 이진(binary ) 파일로 jdk 파일을 업로드하여 사용할 경우 아래와 같은 오류가 발생하였다.
AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless
java.lang.NullPointerException
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:367)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:312)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
Error Analysis, Test, Cause (에러 분석, 테스트, 원인)
Error Analysis
리눅스에서 jenkins를 구동하면 java.awt.headless 옵션을 true로 주어 awt 라이브러리를 리눅스에서 사용할 수 있도록 만들고 jenkins에서 이를 사용한다.
Test
- 사용 JDK 종류(Vendor) : oracle openjdk, oracle jdk, zulu openjdk - Running with JDK 7 : 바이너리 이진 파일을 업로드 하여 사용해도 이상 없이 정상 실행 됨 - Running with JDK 8 or 11 : 리포지토리(repository)의 패키지를 통한 jdk 설치 사용 시 정상 실행 됨 - Running with JDK 8 or 11 : 바이너리 이진 파일 업로드 하여 사용 시 NullPointerException 발생 |
Cause
jdk8, 11에서 awt 라이브러리 사용 시 font 설정을 가져오는데 바이너리 이진(binary) 파일 사용 시 font 설정 properties 가 존재하지 않아 NullPointerException이 발생한다.
Solution (해결 방법)
jdk/lib/fontconfig.properties 파일을 생성하여 아래와 같이 기본 설정으로 내용을 채운다.
version=1
sequence.allfonts=default
'CI CD > jenkins' 카테고리의 다른 글
[젠킨스] 이슈 - 젠킨스 안전하게 시작, 종료 jenkins start, stop, shutdown (graceful, safely) (feat. war 구축 환경) (0) | 2020.03.30 |
---|