Programing/Error Resolution(오류해결)

Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError; java/xml/bind/JAXBException 오류 해결하기

세기루민 2023. 6. 14. 09:51
728x90

maven 프로젝트를 gradle로 변환하면서 프로젝트 셋팅 중 아래와 같은 오류를 접하게 되었습니다.

 

Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError;


문제 원인 분석

해당 오류는 jaxb-api를 호출하지 못하여 발생한 오류였고 생각보다 쉽게 해결이 가능했습니다. 

 

문제 해결

build.gradle 파일에 아래와 같은 의존성을 추가해주면 해결됩니다. 

dependencies {
  implementation 'javax.xml.bind:jaxb-api:2.2.11'
}

 

기타

jaxb-api에 대해 간단히 알아보도록 하겠습니다. 

jaxb-api?

  • Java Architecture for XML Binding APIJava에서 XML 데이터와 Java 객체간의 상호 변환을 지원하는 API
  • jaxb는 xml 데이터를 java로 변환, java 객체를 xml로 직렬화하는데 사용되어 xml 데이터를 관리하기 용이
  • jaxb를 사용하기 위해서는 xml 데이터를 직접 파싱, DOM이나 SAX와 같은 다른 xml 파서를 사용할 필요가 없음 
  • jaxb는 xml 데이터를 java 객체로 변환하는 양방향 바인딩을 제공함으로 java 객체를 xml로 다시 변환 가능 
  • jaxb-api는 JDK에 포함되어 제공되며 Java SE 6 이상에서 사용이 가능 
  • jaxb를 사용하기 위해서는 jaxb-api 라이브러리jabx 구현체를 이용해야 합니다. 

 

 

728x90