본문 바로가기
프로젝트

org.h2.jdbc.JdbcSQLNonTransientConnectionException 에러 해결

by Dr.섭도 2024. 6. 8.

오류

org.h2.jdbc.JdbcSQLNonTransientConnectionException : Unsupported database file version or invalid file header in file

 

상황

TDD 강의 학습 중 위와 같은 에러가 나왔다

Service 로직을 테스트 하는 과정에서 등장했으며, H2 데이터베이스 파일 버전이 현재 사용중인 버전과 달라서 일어난 상황이라 판단했다.

(또는 헤더가 손상되어 읽을 수 없을 경우인데, 헤더가 손상될 만한 상황이 없었기에 경우는 아니라 생각했다)

 

해결

라이브러리 의존성을 먼저 확인해보았다

맨 아래 com.h2database:h2:2.1.214로 설정이 되있었다

그래서 내가 깔았을만한 H2 DB를 확인하기 위해 사이트로 이동했다

 

https://www.h2database.com/html/download.html

 

Downloads

Downloads Version 2.2.224 (2023-09-17) Windows Installer (SHA1 checksum: 1e4cda116519e8f95cac8298b1a4d7cbd50073ec) Platform-Independent Zip (SHA1 checksum: 8de40da72b269ae1d7a899f25aa0bbcb242b6220) Version 2.1.214 (2022-06-13) Windows Installer (SHA1 check

www.h2database.com

 

다운로드로 넘어가자 맨 위에 두 개의 버전이 보였다

 

내가 23년 9월 이후 최신 버전을 받았기 때문에 난 2.2.224 버전이 필요했다

 

따라서 mvn repository로 이동해 maven 파일 의존성 코드를 가져왔다

 

https://mvnrepository.com/artifact/com.h2database/h2

 

 

맨위에 2.2.224 버전을 받기위해 들어간 다음

 

 

아래 Maven 의존성 설정을 긁어왔다

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.2.224</version>
    <scope>test</scope>
</dependency>

 

그리고 해당 폴더의 pom.xml로 이동하여

 

h2database 부분을 갈아끼워줬다

 

이후 maven을 다시 빌드하고 테스트를 진행

 

테스트를 성공했다