티스토리 뷰

 

JAXB는 Java Architecture for XML Bind을 뜻한다.

우리는 Maven 형식으로 프로젝트를 구성할때 등등 프로젝트를 하면서 많은 xml을 사용하는데

xml을 java Object 형식으로 바꿔주는 역할을 하는 기술이 JAXB 이다.

 

나는 지금 현재 Java11 버전을 사용하고 있고 hibernate를 사용하려던중 에러가 발생했다.

JAXB는 Java6에서 2.0으로 내장되어 있었고 Java9 에서 모듈화 방식을 사용하면서 vm 옵션을 통해 추가 해서 사용할수 있었으나 Java11 버전부턴 삭제가 되었다고 한다.

 

원인

  • Java 8 -> Java 9 버전업 시 해당 모듈이 제거
  • Java SE 9: JAXB API를 Java EE API로 간주해 기본 클래스 경로에 포함하지 않음
  • Java 11: JAXV API를 JDK에서 아예 제거

 

해결방법

Maven

<dependency>
    <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

Gradle

implementation 'javax.xml.bind:jaxb-api:2.3.0'

 

https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception

 

How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

I have some code that uses JAXB API classes which have been provided as a part of the JDK in Java 6/7/8. When I run the same code with Java 9, at runtime I get errors indicating that JAXB classes ...

stackoverflow.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함