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

kiroro0814님의 프로필 이미지

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

MyBatis 적용2 실행 실패

작성

·

50

0

테스트는 성공을 했는데
ItemServiceApplication을 실행했는데 실행이 되질 않습니다...
제가 처음에 스프링부트는 3.x.x 버전을 사용하고 있는줄 알고 MyBatis 버전을 3.0.3으로 설정하고 "테스트 실행 도중" 오류가 생겼습니다.
그래서 막 build.gradle에서 이것저것 건드리다가 강사님께서 올려주신 코드를 그대로 실행한걸 깨닫고 MyBatis 버전을 2.2.0으로 낮추고 다시 build.gradle을 원래대로 돌리니 테스트 코드가 정상 실행됐는데 이제는 애플리케이션 실행이 되질 않습니다 ㅠㅠ 뭐가 문제인걸까요..
오류 코드는 아래와 같이 뜹니다..

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

제가 작성한 코드는 아래에 구글 드라이브 링크로 첨부하겠습니다.
https://drive.google.com/file/d/1w5ys_ZxhtNr5-vgNq9-B_j1Y2CEkiktR/view?usp=sharing

그리고 에러 메시지는 전부 붙여넣기 하려고 했는데 본문 글자수가 초과되서 실을수가 없어요...ㅠㅠ
어떤게 문제인지 알려주시면 감사하겠습니다 ㅠㅠㅠ
MyBatis에서 갑자기 문제가 생겼어요....

 

답변 2

0

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

h2가 실행중인 상태가 맞을까요?

프로젝트 실행해보았는데, 정상 실행되네요 😀

h2 실행 상태 확인 후 실행중에서 발생한 상황이라면 댓글 남겨주세요.

감사합니다.

0

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

강의 중에 MyBatis와 H2 데이터베이스 연결 문제로 실행에 실패하는 것 같군요. 비슷한 오류를 겪은 다른 학습자들의 질문을 참고하시길 권장드립니다.

  1. 실행 오류 질문

    • 이 질문에서 유사한 문제를 겪고 있는 내용이 있습니다. 주로 H2 데이터베이스가 제대로 실행되지 않아서 발생한 문제입니다. MyBatis와 H2 설정이 올바른지 다시 확인하고, H2 데이터베이스가 정상적으로 실행 중인지 확인하세요.
  2. h2 데이터베이스 설치 대신 embedded를 이용하려고 하는데요

    • H2 인메모리 모드를 사용하려고 할 때 발생하는 연결 문제를 해결하는 방법을 설명합니다. 현재의 설정에서 jdbc:h2:tcp://localhost/~/test 대신 jdbc:h2:mem:test와 같은 메모리 모드를 사용해 보세요.
  3. MemberServiceIntegrationTest 시 Failed to obtain JDBC Connection 오류

    • H2 데이터베이스 파일이 이미 사용 중이라 연결을 못하는 상황에 대해 다루고 있습니다. JVM에 H2 세션이 이미 열려 있는지 확인해 보세요. 또, 기존에 생성된 데이터베이스 파일을 삭제하고 재시도해 보세요.
  4. 22강 MemberServiceIntTest 실행 시 오류

    • 회원 정보와 관련된 테스트에서 발생하는 H2 연결 오류를 해결하는 과정이 잘 설명되어 있습니다. application.properties 파일과 실제 H2 데이터베이스 실행 상태를 확인하는 것이 문제 해결의 주요 포인트입니다.

해당 질문들을 참고하여 설정 파일을 재확인하고, H2 데이터베이스가 제대로 실행되고 있는지 확인해보세요. 데이터베이스 연결이 원활히 되지 않아 생기는 문제라면, 위의 응용 방법들을 시도하시면 도움이 될 것입니다.

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