자바 NoSuchFieldError
자바에서 엑셀을 읽을 수 있는 XSSFWorkbook 객체를 사용하다 보면 라이브러리를 추가해야 되는데, 이때 라이브러리 버전이 안 맞으면 수많은 class not found 오류가 발생합니다. 그래서 제가 직면했던 오류와 지금 사용하는 라이브러리 버전을 공유하겠습니다.
연관 오류 종류
java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER
java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V
java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile
현재 사용하는 라이브러리 버전
commons-collections4-4.4.jar
poi-3.13.jar
poi-ooxml-3.13.jar
poi-ooxml-schemas-3.13.jar
xmlbeans-3.0.1.jar
저는 위에 5개 라이브러리를 추가하니 엑셀 관련 객체들이 정상적으로 동작하였습니다. 이 중에서 특히 최신 poi 라이브러리를 사용하면 수많은 라이브러리들의 버전이 함께 높아야 해서 오류가 가장 많이 났습니다. 처음에 5 사용했다가 바로 3으로 내렸습니다..
위와 같이 맞추니 이제 클래스를 못 찾는다는 오류는 나지 않네요 ;;
결국 라이브러리간에 호환성 문제였던 것...
'[개발] Programming > Java' 카테고리의 다른 글
자바 try catch에 finally 사용하는 이유 (익센션 처리) (0) | 2022.06.08 |
---|---|
자바 문자열이 포함되어 있는지 확인하는 함수 - contains vs equal (0) | 2021.08.28 |
com.ibatis.common.xml.NodeletException: Error parsing XML 오류해결 방법 (0) | 2020.12.07 |
톰캣 세션 수 설정하는 방법 - maxActiveSessions (0) | 2020.09.29 |
자바 실행 시간(시간 차이) 구하기 - currentTimeMillis() (0) | 2020.04.23 |
댓글