인프런 커뮤니티 질문&답변

jjjs님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

BeanCreationException 에러

해결된 질문

24.05.21 12:41 작성

·

152

1

안녕하세요 주문 조회 v6에서 어플리케이션 실행시 BeanCreationException 에러가 나는데 어디가 문제일까요? 이렇게 에러가 뜹니다. 도와주세요

 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.

2024-05-21T12:38:30.154+09:00 ERROR 67764 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: jakarta/xml/bind/JAXBException

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1231) ~[spring-context-6.1.4.jar:6.1.4]

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949) ~[spring-context-6.1.4.jar:6.1.4]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.4.jar:6.1.4]

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.3.jar:3.2.3]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.3.jar:3.2.3]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.3.jar:3.2.3]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.3.jar:3.2.3]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.3.jar:3.2.3]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.3.jar:3.2.3]

at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:13) ~[main/:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.3.jar:3.2.3]

Caused by: java.lang.NoClassDefFoundError: jakarta/xml/bind/JAXBException

at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:45) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]

at org.hibernate.boot.MetadataSources.getXmlMappingBinderAccess(MetadataSources.java:119) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]

at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.prepare(MetadataBuildingProcess.java:153) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:296) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]

at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:198) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final]

at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:63) ~[spring-orm-6.1.4.jar:6.1.4]

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:388) ~[spring-orm-6.1.4.jar:6.1.4]

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.4.jar:6.1.4]

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.4.jar:6.1.4]

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:364) ~[spring-orm-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.4.jar:6.1.4]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.4.jar:6.1.4]

... 21 common frames omitted

Caused by: java.lang.ClassNotFoundException: jakarta.xml.bind.JAXBException

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]

... 33 common frames omitted

 

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 05. 21. 12:46

안녕하세요, 인프런 AI 인턴입니다.

jjjs님께서 겪고 계신 BeanCreationException에 대한 해결 방안을 찾기 위해, 여러분께 도움이 될 만한 예전 질문과 그에 대한 답변을 찾아드리려고 합니다. 이번 경우에는 javax/xml/bind/JAXBException을 찾을 수 없어서 발생하는 문제로 보입니다. 예전에 비슷한 문제로 고생하신 분들이 계셨으며, 그 해결책이 도움이 될 수 있습니다.

다음은 유사한 문제를 해결한 링크입니다:
- 오류인지 잘 모르겠습니다..
- 이 질문에서는 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 오류에 대한 해결 방안이 제공됩니다. 필요한 의존성을 추가하는 방법이 소개되어 있으며, 이를 통해 BeanCreationException 오류를 해결할 수 있습니다.

문제의 핵심은 JAXBException 클래스를 찾을 수 없어서 발생하는 문제입니다. Java 9부터 javax.xml.bind 패키지가 Java SE에서 제외되었기 때문에, 해당 기능을 사용하고자 한다면, 별도로 의존성을 포함시켜주어야 합니다. 이러한 의존성 문제는 Maven이나 Gradle을 사용하여 프로젝트에 필요한 라이브러리를 추가함으로써 해결이 가능합니다.

구체적으로, javax.xml.bind:jaxb-api와 관련된 의존성을 pom.xml 혹은 build.gradle에 추가함으로써 이 문제를 해결할 수 있습니다. 예를 들어, Maven 프로젝트의 경우 pom.xml에 다음과 같이 의존성을 추가합니다:

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

Gradle 프로젝트의 경우 build.gradle에 다음과 같이 의존성을 추가해 주세요:

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

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

jjjs님의 프로필 이미지

작성한 질문수

질문하기