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 한 후 톰캣 서버를 다시 실행시키는 정상 작동하였습니다.

 

 느낀점

버전 업데이트 중 발생한 문제라 제일 먼저 생각한 것은 버전끼리의 충돌이라고 짐작했고, 그 짐작을 토대로 문제를 해결해 가려고 했습니다. 하지만 문제 원인은 에러 로그에 남아 있다는 것! 그렇기에  첫번째로는 에러 로그 처리도 잘 해놓고, 두번째는 에러 로그를 먼저 자세히 잘 살펴봐야겠다는 생각이 들었습니다.