java.lang.ClassCastException: class org.apache.poi.openxml4j.uti.ZipSecureFile$ZipFileInputStream (org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream is in unnamed module of loader org.apache.catalina.loader.WebappClassLoader ; java.util.zip.ZipFile$ZipFileInputStream is in module java.base of loader 'bootstrap')
자바로 엑셀 다운로드 프로그램을 만들고 있는데 위와 같은 에러가 났다.
이상하네..
분명 구글링해서 아주 간단한 샘플 소스 코드 가져와서 했는데.. 에러 날때가 없는데..
알고 봤더니 이클립스에서 Ctrl+Shift+O 해서 클래스 import 를 했는데 이상하게 여러개면 선택하라고 나오는데 이건 그냥 바로 소스코드에 박혔다.
그냥 선택하라는 팝업창이 나왔으면 이런 삽질은 안했을텐데..
이클립스 버그인가..
압튼 오랜 삽질의 결과
import org.apache.poi.xssf.streaming.SXSSFSheet;
이렇게 자동으로 박힌 소스를
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
로 바꾸니 되었다.
streaming을 usermodel로 바꾸고 SXSSF 붙은것을 S를 지우고 XSSF 로 Sheet 및 Workbook, XSSFCell등 다 바꿔줬다.
그냥 복잡해서 기본으로 다시 다 바꿨다.
import org.apache.poi.ss.usermodel.Workbook;
그냥 이렇게만 해도 잘 되었다.
이상하다.. 동일한 소스인데 어느 부분에서는 잘 되는데 어느 부분에서는 안된다.. 이상하다.. 그냥 안되는것은 위의 방식으로 만들어서 사용했다.