강의

멘토링

로드맵

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

giwankim13님의 프로필 이미지
giwankim13

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

H2 데이터베이스 설치

멤버 서비스 통합 테스트 @Transactional 어노테이션 추가 시 문제

작성

·

463

0

스프링의 통합 테스트 시 JDBC {Api/Template}을 사용하던지 간에 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 에러가 납니다.

제가 조금 디버깅 해 본 결과 @Transactional 어노테이션이 문제입니다. 혹시나 해서 h2도 소켓 통신 서버 모드로 작동하는 것을 확인하였습니다.

혹시 스프링이나 JDBC 드라이버의 버전 문제인가요? 제가 사용하고 있는 dependencies는 다음과 같습니다.

퀴즈

순수 JDBC를 사용할 때, 데이터베이스 리소스(연결, Statement 등) 관리가 어려웠던 주된 이유는 무엇일까요?

SQL 쿼리를 직접 작성해야 해서

각 리소스를 사용 후 반드시 직접 닫아줘야 해서

테스트 간 데이터 독립성을 보장하기 어려워서

의존성 주입 설정이 복잡해서

답변 3

1

저도 동일한 현상이 나타나고 있습니다. 원인이 무엇인고 어떻게 해결해야하는지 피드백 

김영한님의 프로필 이미지
김영한
지식공유자

https://www.inflearn.com/questions/234726 여기를 참고해주세요.

1

giwankim13님의 프로필 이미지
giwankim13
질문자

안녕하세요.

서버 모드 작동 다음과 같이 확인했습니다.

  1. h2 console:
  2. application.properties:

오류 메시지의 stack trace는

이고 제 생각에 해당하는 오류는 인 것 같습니다. 그래서 @Transactional을 떼고 테스트를 하나 하나 실행하면 녹색볼이 뜹니다.

감사합니다.

안녕하세요. 혹시 질문하신 부분 해결 되셨을까요?

저도 같은 오류가 발생하네요

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. giwankim13님

먼저 h2 데이터베이스를 서버 모드로 실행해두었는지 확인해주세요.

만약 그래도 잘 동작하지 않으면

1. 전체 오류 메시지를 보여주세요.

2. application.properties를 보여주세요.

감사합니다.

giwankim13님의 프로필 이미지
giwankim13

작성한 질문수

질문하기