| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 존폴쥬얼리
- 추천시스템steam
- LLM기반CBF
- tomcat튜닝
- 존폴결혼예물
- steam game score
- 외부 톰캣 특수문자 깨질 때
- cookie refreshToke
- dialtimeout
- staem algorithm
- 존폴반지
- jqxWidget워터마크
- 한글 특수문자 자바스크립트
- jsp permission denied
- 스팀 게임 스코어 알고리즘
- 분산파일
- spring unit test
- 존폴결혼반지
- 스프링단위테스트방법
- set-cookie 안만들어짐
- integrationtest
- 동시 요청 처리
- jqx워터마크제거
- dial timeout
- jsp 예외 permission
- 비개인화추천모델
- LLM기반 콘텐츠 추천
- Akamai 연구결과
- 분산파일시스템
- 자바스크립트 깨질 때
- Today
- Total
hola 개발
[ 문제 해결 ] XLSTransformer java.lang.ClassNotFoundException 과 NoClassDefFoundError 발생 시(feat. ChatGpt도 한계가 있음을) 본문
[ 문제 해결 ] XLSTransformer java.lang.ClassNotFoundException 과 NoClassDefFoundError 발생 시(feat. ChatGpt도 한계가 있음을)
hola. 2025. 6. 23. 13:35버전 및 실행 환경
- java : 17
- springframework : 5.3.37
- 전자정부프레임워크 : 4.3.0
- 라이브러리 : jxls-core 1.0.6 / poi 3.13 / poi-ooxml 3.13
- 이클립스 : 4.3
문제 발생 배경
해당 문제는 기존 프로젝트의 spring mvc 버전과 전자정부프레임워크를 버전 업데이트를 하면서 만난 문제입니다. XLSTransformer 클래스를 찾을 수 없다는 예외가 발생했습니다. 해당 라이브러리가 분명히 import 되어 있는데도 클래스를 찾을 수 없다는 예외가 발생한 것입니다.
해결 과정
그렇게에 처음에는 java나 spring mvc 버전과 라이브러리가 맞지 않아서 발생한 문제이거나 라이브러리 충돌 문제일 것이라고 생각했습니다. 챗 지피티에 물어봐도 라이브러리 충돌일거라고 했습니다. 그래서 이틀 동안 라이브러리 버전도 바꿔보고 다양한 시도를 했지만 역시 해결하지 못했습니다.
그래서 로그를 더 자세히 살펴보았습니다. Caused by: java.lang.ClassNotFoundException: net.sf.jxls.transform.XLSTransformer
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:...)
클래스를 로드하는 중에 문제가 발생한 것 같아보여
상단 project - clean을 한 후 프로젝트 우클릭 mvc -> clean 후 build 후 install 한 후 톰캣 서버를 다시 실행시키는 정상 작동하였습니다.
느낀점
버전 업데이트 중 발생한 문제라 제일 먼저 생각한 것은 버전끼리의 충돌이라고 짐작했고, 그 짐작을 토대로 문제를 해결해 가려고 했습니다. 하지만 문제 원인은 에러 로그에 남아 있다는 것! 그렇기에 첫번째로는 에러 로그 처리도 잘 해놓고, 두번째는 에러 로그를 먼저 자세히 잘 살펴봐야겠다는 생각이 들었습니다.
'프레임워크 > 스프링' 카테고리의 다른 글
| [ Test ] 제대로 익히는 Spring Boot 테스트 방법 #2. 각 계층 단위 테스트 또는 슬라이스 테스트 (4) | 2025.07.10 |
|---|---|
| [ Test ] 제대로 익히는 Spring Boot 테스트 방법 #1. 기본 (1) | 2025.07.07 |
| [Spring] 서블릿 필터와 인터셉터는 왜 필요하고 어떻게 쓰는걸까? (3) | 2024.10.14 |
| [ Spring ] 설정과 사용의 분리의 효과는 어마어마해! - 커넥션 풀과 DataSource (1) | 2024.10.14 |
| [ Spring ] 데이터베이스 접근 기술 JDBC - 근본은 변하지 않는다 (0) | 2024.10.14 |