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

한종승님의 프로필 이미지
한종승

작성한 질문수

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

스프링 통합 테스트

Connection is closed 에러발생(해결)

작성

·

5.7K

2

안녕하세요 강사님! 덕분에 수업 잘 듣고있습니다.

스프링 통합 테스트 강의에서, 테스트 코드의 join함수를 실행시켰더니 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 에러가 발생했습니다.

원인파악을 위해 join함수 처음부터 천천히 디버깅을 시도했는데,

JdbcMemberRepository 클래스의 save함수에서 try 구문의 conn을 할당받는 첫번째 pstmt변수에서 IllegalStateException을 발생시켰습니다. 어떤 원인으로 에러가 발생했으며, 해결방법이 궁금합니다. 

아래에 제가 작성한 오류와 연관된 코드들과 에러메시지 첨부합니다.

 

*close함수에서 conn.close()를 close(conn)으로 수정했더니 해결됐습니다.

[테스트코드]

[JdbcMemberRepository 클래스]

[MemberService 클래스]

[에러메시지]

답변 5

1

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

jongseunghan님 스스로 잘 해결하셨습니다^^

0

감사합니다! 덕분에 해결햇어요

0

close 메서드는 매개변수를 3개를 갖는 메서드인데
close(conn)으로하면 다들 오류가 안나시나요?
저는 오류가 나고있습니다

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

안녕하세요. binaryone21님

문제 상황을 정리해서 Q&A에 새로 만들어서 올려주시면 저와 서포터즈가 도움을 드리겠습니다.

감사합니다.

0

안녕하세요. 자바초보입니다.

close함수에서 conn.close()를 close(conn)으로 수정하면 되나요? 전 해결이 안되는데...

close(conn) 함수는 출처가 어디죠?

@Transactional 사용하면 오류나는 원인이 뭔가요?

궁금합니다.

0

한종승님의 프로필 이미지
한종승
질문자

삭제된 글입니다

한종승님의 프로필 이미지
한종승
질문자

close함수에서 conn.close()를 close(conn)으로 바꿨더니 해결됐습니다.. 혹시라도 저랑 동일한 문제로 어려움 겪고 계신 분들 참고하세요! 

한종승님의 프로필 이미지
한종승

작성한 질문수

질문하기