▏상황
내가 맡고있는 업체에서, 우리 회사 솔루션을 사용하던 중 에러가 발생하여 문의를 준 것이 바로
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
댓글