▏상황
내가 맡고있는 업체에서, 우리 회사 솔루션을 사용하던 중 에러가 발생하여 문의를 준 것이 바로
java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 이다.
에러 발생 환경을 간단히 설명하자면, 리눅스 환경에서 우리 솔루션을 사용하여 db에 연결하고 select 문을 테스트 후 rollback 하는 것인데, 그 과정에서 에러가 발생한 것이다.
에러를 찾아보니, 자바 버전 7.2.x 버전 이후 부터는 ByteToCharConverter.class 가 빠져있는 것이다.
▏에러 로그
java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter
at com.ibm.db2.jcc.b.r.a(r.java:159)
at com.ibm.db2.jcc.a.d.a(d.java:1009)
at com.ibm.db2.jcc.a.db.a(db.java:1723)
at com.ibm.db2.jcc.a.db.a(db.java:1651)
▏해결방법
db2jcc.jar 가 아닌 db2jcc4.jar 로 업그레이드 하면 해결되는 문제였다.
아래 삽입된 참고자료 링크를 보면 알 수 있듯이 나는 처음에 jdk 폴더 안에 ext 로 빼서 해당 파일들을 넣으려 했는데, jdk 자체를 바꿔버리는 것은 리스크가 크기 때문에, 따로 참조해서 사용하는 db2jcc.jar 를 db2jcc4.jar 인 최신 버전으로 교체하여 해결했다.
▏참고자료
https://doc.castsoftware.com/display/TG/Delivery+Manager+Tool+-+Extraction+-+Fatal+Error+-+SQL-+PSM+UDB+-++ByteTocharConverter+caused+by+java+lang+NoClassDefFoundError
'기초지식' 카테고리의 다른 글
JWT (Json Web Token) 란 ? (0) | 2023.04.23 |
---|---|
[Eclipse] No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. 에러 해결 방법 (0) | 2023.01.02 |
[Eclipse] javax.servlet import 에러 해결 방법 (0) | 2022.07.05 |
[Eclipse] Port 8080 required by Project is already in use 에러 해결 (0) | 2022.07.04 |
[JAVA] Failed to create folder. java.io.IOException : 그런 파일이나 디렉터리가 없습니다. 에러 해결 (0) | 2022.07.01 |
댓글