Error code 모음/5. JAVA, Spring errors

[Spring Error] Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory

쟈누이 2020. 10. 28. 14:07
반응형

위 에러는 톰캣을 실행했을 시에 

톰캣과 DB 가 제대로 연동되어 있지 않을 때 발생하는 에러이다.

위와 같은 경우가 발생할 경우에는 

 

DB 커낵션, sqlsession 등 스프링 내 jdbc 연결을 담당하고 있는 

root-context.xml 파일을 찾아서 DB 설정을 확인해주어야 한다.

 

나의 경우에는 root-context.xml 의 이름이 다르게 설정되어 있어서

다르게 설정되어 있는 xml 파일을 들어갔다.

 

이름이 다르게 설정되어 있더라도 중요한 것은 

root-context.xml 파일의 위치는 webapp 경로의 아래에 위치한다는 사실이다

 

그리고 jdbc 연결 설정을 할 때, 스프링에서 반드시 잡아주어야 하는 부분이라,

프로젝트에 있어서 해당 파일의 위치는 파악하고 있는 것이 좋다.

 

1. root-context. xml 파일에 들어간다.

(해당 파일은 이름 및 저장되어 있는 경로가 개인별로 다를수 있으니 명심할 것)

 

2. 파일을 열고 처음에 DB 설정을 한 부분에 문제가 있는지 확인한다

<!-- postGre -->
   	
   	<bean id="dataSource-postgre-system" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      	<property name="driverClassName" value="org.postgresql.Driver"/>
      	
        # 나의 경우에는 아래의 연결이 잘못되어 있어서 발생했었다..
      	<property name="url" value="jdbc:postgresql://hahaha.hahihu.kr:5432/hahah" />

나의 경우에는 아래의 연결에서 오타가 나 있어서 에러가 발생했었다..

 

 

위를 제대로 이해하기 위해서는 spring 에서 db에 접속하는 방법을 알고 있으면 훨씬 이해하기가 쉬울 것이다.

접속하는 방법에 대한 것은 3가지 정도가 있는데 

1. JDBC 만을 이용한 접속

- 이 경우에는 pom.xml 를 이용하여 jdbc 작성을 위해 driver 를 다운로드 하는 것

 

2. spring 에서 datasource 를 정의하고 이를 통한 접속 

- 이 경우에 pom.xml 과 root-context.xml 이 사용된다.

 

3. Mybatis 를 이용한 접속

- 2번의 경우와 사용하는 파일은 똑같지만, sqlSessionFactory 라는 MyBatis 이용시 필요한 객체를 사용하여

  db 에 접속하는 방법이다.

 

자세한 사항은 아래 링크를 참고하면 도움이 될 것이다.

repacat.tistory.com/23

 

Spring 에서 DB 접속하는 방법에 대한 개념 정리

코드로 배우는 스프링 웹프로젝트 라는 책을 보고 있다. 쉽게 써진 책이고 스프링의 기술적 설명을 최소화한 상태로 진행하도록 구성되어 있어 초보가 보기에 참 좋은 책인 듯 하다. Spring에서 DB

repacat.tistory.com

 

참고링크

위 에러를 해결하는 데 있어 참고한 링크이다.

sjyoon.tistory.com/entry/EclipseTomcat-Oracle-%EC%A0%91%EC%86%8D-%EC%97%90%EB%9F%ACCould-not-open-JDBC-Connection

 

[Eclipse-Tomcat] 서버구동시 Oracle 접속 에러_Could not open JDBC Connection

Tomcat 은 붙었는데, 실제 check out 받은 프로젝트에 붙질 못할때.. 알고보니 context-datasource.xml 의 설정정보가 다른것을 깜빡하고 수정하지 않음... 이때 에러메세지 내용은.. Could not open JDBC Connect..

sjyoon.tistory.com

 

반응형