도입부
최근 Java 11을 기본으로 사용하고 있다.
자바 8은 그만큼 오래된 버전이기도 하고 곧있으면 종료한다길래 차츰차츰 적응해보고자 11로 모든 프로젝트를 마이그레이션 하고 있었다.
하지만 Java 11로 업그레이드 한 후에는 다음과 같은 오류를 확인할 수 있었다.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:199) at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:618) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:467) at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) at org.springframework.boot.SpringApplication.run(SpringApplication.java:320) at org.springframework.boot.SpringApplication.run(SpringApplication.java:952) at org.springframework.boot.SpringApplication.run(SpringApplication.java:941) at com.apress.isf.spring.HelloWorldController.main(HelloWorldController.java:20) Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException ...
요약을 하자면 java.lang.ClassNotFoundException 이다. JAXB를 찾을수 없다고 한다.
원인을 찾아보자
관련 오류를 찾아보니 JAXB는 Java EE로 바뀌면서 Java 9 버전 이상부터는 더이상 기본적으로 포함되지 않는다고 한다.
자바 11부터는 JDK에서 방출 되었다고 한다.
해결 방법
해결 방법은 간단하다. 프로젝트에 JAXB 관련 디펜던시를 추가해주면 된다.
'버그리포트' 카테고리의 다른 글
SSH 접속시 RSA 공유키 충돌 문제 (0) | 2021.04.30 |
---|---|
[코틀린] 클래스 안드로이드 생명주기 lazy 제대로 알고 쓰자! (0) | 2020.06.26 |