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

김아리님의 프로필 이미지
김아리

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA와 DB 설정, 동작확인

test 오류

작성

·

737

0

org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-214]


로그에서 해당 오류가 발생합니다

해당 yml 설정입니다

h2도 다시 삭제하고 버전을 다시 다운로드 받아도 같은 에러가 뜨네요 ㅠㅠ

 

memberrepositorytest에도 에러가 발생하고 있습니다

 

https://drive.google.com/file/d/1RAzTzhg_dplS9SvhK1A_-es0XUFsViMu/view?usp=sharing

 

혹시 몰라서 압축 파일도 올립니다 감사합니다

답변 4

1

김아리님의 프로필 이미지
김아리
질문자

스프링 부터 버전 낮추고 h2버전 다시 다운로드하고 mv.db 파일 말씀하신대로 삭제하고 다시 생성하였더니 모두 정상 작동합니다!!!!! 정말 감사드립니다..

최근 스프링부트 버전이 올라가면서 관리하는 h2버전이 올라가서 발생한 거 같네요. 이 부분은 영한님에게 전달드리겠습니다 ^^

0

image해당 에러메시지를 검색하였는데 h2버전이 로컬에 설치하신 것과 불일치 하여 발생한 문제로 예상되더라구요.

버전이 불일치할 때 생성된 h2 db파일을 지워야 하기 때문에 삭제 요청 드렸고

-

최근 스프링부트가 버전업되면서(2.7.x) 스프링부트에서 사용하는 h2 버전을 2.1.214로 올린 것 같아서 h2 1.4.200을 사용하는 스프링부트 버전(2.6.x)로 다운그레이드 요청 드렸습니다.

-

설치하신 h2버전과 build.gradle이 2.7.대 인지 확인해보시면 될 것 같습니다.

-

해결 방안은 위에서 설명드린대로

  1. 스프링부트의 버전을 낮춰 h2을 1.4.200 으로 통일(내 개발 환경과 스프링부트가 추가해주는 의존성 버전)

  2. 이전 h2버전으로 생성된 db파일 삭제 후 직접 db파일 생성

 

이렇게 한번 진행해보시고 안되면 댓글남겨주세요

0

김아리님의 프로필 이미지
김아리
질문자

네 말씀처럼 h2를 실행하고 build해보고

test resources 생성해서 application.yml으로 돌려봐도 해당 오류가 발생합니다 ㅠㅠ

 

감사합니다

질문 본문에는 테스트 실행 중 발생한 오류로 테스트 실행에서 해당 오류를 h2를 실행하지 않는 방법으로 설명드렸는데,

댓글로 남기신 에러는 테스트가 아닌, 스프링 서버 실행하셨고 h2 초기 설정부분부터 안된 것으로 보이는데 맞나요?

 

참고로 올리신 코드는 제 개발환경에서 실행한 결과 이상 없었습니다.

 

김아리님의 프로필 이미지
김아리
질문자

네 test 실행은 h2를 실행하지 않으니까 잘 pass가 되는데 서버실행이 위와 같은 오류가 발생합니다

아무래도 코드 자체에는 이상이 없고 h2 실행 방법에서 무언가 꼬인것 같은데 죄송하지만 선생님께서 실행하신 순서를 간략히 설명해주실 수 있을까요??

감사합니다

해결 방안 설명드릴게요

  • h2 버전을 1.4.200으로 설치해주세요, 이전에 설치한 h2가 1.4.200이 아니면 완전히 삭제해주세요

  • build.gradle에서 스프링 부트의 버전을 2.6.3 으로 변경해주세요.(두번째 줄에 있을거에요)

  • plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' }

  • build.gradle을 수정하면 나타나는 해당 아이콘을 클릭해주시고, 완전히 로딩될 때 까지 기다려주세요.

  • imageC:\USERS\00003807 폴더 가셔서 파일 확장자가 mv.db인 것을 전부 지워주세요

그리고, 아래와 같이 mv.db 파일을 직접생성하시는데 아래처럼 test2.mv.db가 아닌 jpashop.mv.db로 생성하시면 됩니다. 파일 생성하였다면 인텔리제이에서 실행하여 확인해주세요.

 

  • 1. C:\Users\OMG(계정명) 하위에 텍스트 파일을 만듭니다.

    [[ c드라이브 통해서 들어가도 되고, 바탕화면에 있는 내계정명 폴더로 들어가셔도 됩니다.]]

    2. 텍스트 파일을 열고(내용x) 다른이름으로 저장을 누릅니다.

    3. 파일 이름을 test2.mv.db, 파일형식을 모든 파일로 바꿉니다. 저는 우측에 인코딩은 utf-8로 했는데, 인코딩은 크게 중요한거 같진 않지만 우선 동일하게 맞춰주세요.

    4. h2.bat 파일을 실행해주세요.(기본 실행창{실행시키면 열리는 창} or localhost:8082)

    실행 후 아래와 같이 입력 후 연결 눌러주세요.

    (jdbc:h2:tcp://localhost/~/test2 << JDBC URL 복사붙여넣기 하세요)

     

0

안녕하세요. 김아리님, 공식 서포터즈 OMG입니다.

해당 오류는 h2를 실행하지 않아 발생합니다.

h2를 실행해주세요.

h2 실행 없이 메모리모드로 테스트를 실행할 수도 있는데요,

아래 링크를 참고하여 test/resources/application.yml을 생성해주세요.

https://joanyi.tistory.com/25

감사합니다.

김아리님의 프로필 이미지
김아리

작성한 질문수

질문하기