JPA 프로젝트에서 하이버네이트를 JPA 구현체로 사용하여 실행결과를 로그로 출력하는 프로젝트를 만들고 있었는데,
에러가 발생했다.
에러를 거슬러 올라가면서 고쳤기 때문에 그 순서대로 원인과 해결방법을 설명하겠다.
우선 가장 처음의 에러는 XML 버전 2.2를 인식할 수 없다는 에러였다.
위에 동그라미 친 곳을 보면 버전이 2.1로 되어있는 것을 알 수 있다. 내가 다시 수정했기 때문에 2.1로 적용이 가능한 것이다.
수정하기 전에는 2.2버전으로 써놓았었는데, 이때 2.2버전을 인식할 수 없다는 에러가 발생한 것이다.
그래서 다음과 같이 porm.xml을 써놓았다.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.springbook.biz.board</groupId>
<artifactId>JPAProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>JPAProject</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- JPA, 하이버네이트 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.0.Final</version>
</dependency>
<!-- H2 데이터베이스 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.196</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- JAXB2 API -->
<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0-b170201.1204</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0-b170127.1453</version>
</dependency>
</dependencies>
</project>
JPA와 하이버네이트와 H2 DATABASE 의 dependency를 수정해준 것이다. 그랬더니 2.1 버전이 적용가능한 상태가 되었다.
그리고 나서 다시 서버를 애플리케이션을 구동했는데,
JAXB를 찾을 수 없다는 에러가 발생했다. 이 에러는 저번 포스팅에서도 다룬 적이 있는데, 자바 8까지만 자동으로 지원해주고, 그 이후부터는 지원해주지 않기 때문에 내가 따로 설정해줘야 한다고 말했다.
그래서 위에 코드를 보면 밑에서 첫번째와 두번째 dependency가 보일 텐데 그 설정들이 JAXB 설정이라고 보면된다.
그래서 이를 통해 에러를 해결할 수 있었고, 결과적으로는 다음과 같이 하이버네이트의 실행결과를 확인할 수 있었다.
반응형
'Spring Framework > Spring' 카테고리의 다른 글
[Spring] 메이븐 프로젝트 생성 maven-archetype-quickstart (0) | 2021.01.29 |
---|---|
[SpringBoot] java.lang.IllegalArgumentException : Mapped Statements collection does not contain value 에러 (0) | 2021.01.29 |
[SpringBoot] target matching "[xX][mM][lL]" is not allowed 에러 발생 (2) | 2021.01.29 |
[SpringBoot] 이클립스에서 Mybatis 사용하기 (2) | 2021.01.28 |
[Spring] JAXB2 API 사용중 어노테이션을 썼지만, import가 안될 때 !! (0) | 2021.01.28 |