log4j 보안 이슈 적응이후 패키지를 못찾는것 같습니다.
- 작성자 :
- 김*수
- 작성일 :
- 2022-02-14 17:59:17
- 조회수 :
- 3,997
- 구분 :
- 실행환경 / 3.7
- 진행상태 :
- 완료
Q
안녕하세요:)
주말 잘 보내셨나요? 질문이 있습니다..
Apache Log4j 보안성 이슈 관련사항 ( https://www.egovframe.go.kr/home/faqinfo/faqinfoRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=68&faqId=FAQ_0000000000000812 ) 에 따라 적용을 하고,
Maven Build를 하는데, 이러한 메시지가 나타나더라구요.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project kjspo: Compilation failure: Compilation failure:
[ERROR] /C:/bin/eGovFrameDev-3.7.0-64bit/workspace/kjspo/src/main/java/com/kjs/state/StateController.java:[16,24] package org.apache.log4j does not exist
[ERROR] /C:/bin/eGovFrameDev-3.7.0-64bit/workspace/kjspo/src/main/java/com/kjs/state/StateController.java:[29,1] package jxl.common does not exist
StateController에는 private Logger log = Logger.getLogger(StateController.class); 라는 코드가 있습니다.
이걸 지우고 Build를 하면 성공적으로 이루어는지는데, Server를 실행하면 Console에 로그가 나오지 않지만 대신 실행은 잘됩니다.
다만 경고문구로
no appenders could be found for logger (org.springframework.web.context.contextloader).
please initialize the log4j system properly
이렇게 2개가 나오더라구요.
2) JDK8의 경우 Apache Log4j를 패치하는 경우
pom.xml에 다음을 추가합니다.
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.1</version>
</dependency>
이 방식으로 업그레이드만 적용했는데, 기존에 잘되면 프로젝트가 일부 패키지를 잘 못읽는것 같습니다.
혹시 어떤 부분을 더 살펴봐야할까요?
현재 앞서 언급한 private Logger log = Logger.getLogger(StateController.class); 에 getLogger 부분에
The method getLogger(Class<StateController>) is undefined for the type Logger 라는 에러가 보이는 상황입니다.
혹시 몰라 log42.xml와 web.xml 첨부하겠습니다.
주말 잘 보내셨나요? 질문이 있습니다..
Apache Log4j 보안성 이슈 관련사항 ( https://www.egovframe.go.kr/home/faqinfo/faqinfoRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=68&faqId=FAQ_0000000000000812 ) 에 따라 적용을 하고,
Maven Build를 하는데, 이러한 메시지가 나타나더라구요.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project kjspo: Compilation failure: Compilation failure:
[ERROR] /C:/bin/eGovFrameDev-3.7.0-64bit/workspace/kjspo/src/main/java/com/kjs/state/StateController.java:[16,24] package org.apache.log4j does not exist
[ERROR] /C:/bin/eGovFrameDev-3.7.0-64bit/workspace/kjspo/src/main/java/com/kjs/state/StateController.java:[29,1] package jxl.common does not exist
StateController에는 private Logger log = Logger.getLogger(StateController.class); 라는 코드가 있습니다.
이걸 지우고 Build를 하면 성공적으로 이루어는지는데, Server를 실행하면 Console에 로그가 나오지 않지만 대신 실행은 잘됩니다.
다만 경고문구로
no appenders could be found for logger (org.springframework.web.context.contextloader).
please initialize the log4j system properly
이렇게 2개가 나오더라구요.
2) JDK8의 경우 Apache Log4j를 패치하는 경우
pom.xml에 다음을 추가합니다.
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.1</version>
</dependency>
이 방식으로 업그레이드만 적용했는데, 기존에 잘되면 프로젝트가 일부 패키지를 잘 못읽는것 같습니다.
혹시 어떤 부분을 더 살펴봐야할까요?
현재 앞서 언급한 private Logger log = Logger.getLogger(StateController.class); 에 getLogger 부분에
The method getLogger(Class<StateController>) is undefined for the type Logger 라는 에러가 보이는 상황입니다.
혹시 몰라 log42.xml와 web.xml 첨부하겠습니다.
환경정보
-
- OS 정보 : Window 10 Pro
- 표준프레임워크 버전 : 3.7
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat 8.5
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
현재 알려주신 로그 내용으로 봤을때
Maven Build시 해당 패키지가 존재하지 않는것 같습니다.
만약 해당 pom.xml 파일에 dependency가 제대로 잡혀 있다면
project clean 이후 maven repository를 완전 최신화 해 보시기 바랍니다.
project clean : 상단 메뉴 project > cleann...
maven repository를 완전 최신화 :
1. 현재 maven repository 삭제.( 백업이 필요하시면 백업을 해 두시면 됩니다.)
(maven repository의 위치는 상단 메뉴 window > preference > maven > User Settings에서 Local Repository 주소 확인 가능)
2. 해당 프로젝트 우클릭 > maven > Update project ...
감사합니다.
표준프레임워크 센터입니다.
현재 알려주신 로그 내용으로 봤을때
Maven Build시 해당 패키지가 존재하지 않는것 같습니다.
만약 해당 pom.xml 파일에 dependency가 제대로 잡혀 있다면
project clean 이후 maven repository를 완전 최신화 해 보시기 바랍니다.
project clean : 상단 메뉴 project > cleann...
maven repository를 완전 최신화 :
1. 현재 maven repository 삭제.( 백업이 필요하시면 백업을 해 두시면 됩니다.)
(maven repository의 위치는 상단 메뉴 window > preference > maven > User Settings에서 Local Repository 주소 확인 가능)
2. 해당 프로젝트 우클릭 > maven > Update project ...
감사합니다.