작성
·
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
0
해당 에러메시지를 검색하였는데 h2버전이 로컬에 설치하신 것과 불일치 하여 발생한 문제로 예상되더라구요.
버전이 불일치할 때 생성된 h2 db파일을 지워야 하기 때문에 삭제 요청 드렸고
-
최근 스프링부트가 버전업되면서(2.7.x) 스프링부트에서 사용하는 h2 버전을 2.1.214로 올린 것 같아서 h2 1.4.200을 사용하는 스프링부트 버전(2.6.x)로 다운그레이드 요청 드렸습니다.
-
설치하신 h2버전과 build.gradle이 2.7.대 인지 확인해보시면 될 것 같습니다.
-
해결 방안은 위에서 설명드린대로
스프링부트의 버전을 낮춰 h2을 1.4.200 으로 통일(내 개발 환경과 스프링부트가 추가해주는 의존성 버전)
이전 h2버전으로 생성된 db파일 삭제 후 직접 db파일 생성
이렇게 한번 진행해보시고 안되면 댓글남겨주세요
0
질문 본문에는 테스트 실행 중 발생한 오류로 테스트 실행에서 해당 오류를 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을 수정하면 나타나는 해당 아이콘을 클릭해주시고, 완전히 로딩될 때 까지 기다려주세요.
C:\USERS\00003807 폴더 가셔서 파일 확장자가 mv.db인 것을 전부 지워주세요
Ex) jpashop.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을 생성해주세요.
최근 스프링부트 버전이 올라가면서 관리하는 h2버전이 올라가서 발생한 거 같네요. 이 부분은 영한님에게 전달드리겠습니다 ^^