Per ardua ad astra !
I'm On My Way
Per ardua ad astra !
전체 방문자
오늘
어제
  • 분류 전체보기 (126)
    • Algorithm (50)
      • 백준 (30)
      • SWEA (3)
      • JUNGOL (3)
      • Programmers (5)
      • LeetCode (2)
    • 안드로이드 개발 (6)
      • Java로 개발 (0)
      • Kotlin으로 개발 (3)
    • Spring (41)
      • Spring기본 (17)
      • JPA기본 (15)
      • JPA활용 SpringBoot 기본 (9)
      • API 개발 기본 (0)
    • 네트워크 (3)
    • 운영체제 (0)
    • Life (3)
      • 책 (0)
      • 자기계발 (1)
      • 일상 (2)
    • 노마드코더 (3)
      • python으로 웹 스크래퍼 만들기 (3)
    • 프로그래밍 언어 (17)
      • Java 기본 (2)
      • 코틀린 기본 (15)

블로그 메뉴

  • 홈
  • 방명록

인기 글

hELLO · Designed By 정상우.
Per ardua ad astra !

I'm On My Way

스프링 톰캣 서버 실행시 등장하는 오류, MySQL을 JDBC를 통한 연동시 오류
Spring/Spring기본

스프링 톰캣 서버 실행시 등장하는 오류, MySQL을 JDBC를 통한 연동시 오류

2021. 1. 28. 14:08

버전

mysql-8.0.22
apche-tomcat-8.5.61
jdk-14
eclipse-2020-12

 

오류

 

java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver 오류

mysql-connector-java-8.0.22.jar 파일을

1. C:\Program Files\java\jdk-14\lib 에 넣고 BuildPath로 설정해준다.
=> 실패

 

2. D:\apache-tomcat-8.5.61\apache-tomcat-8.5.61\lib에 넣는다
=> 실패

 

3. 현재 진행중인 웹 프로젝트의 webapp\WEB-INF\lib에 넣는다
=> 성공 

 

 

No mapping found for HTTP request with URI 오류 

dispatcher를 찾을 수 없다고 계속그럼
-> 프로젝트 오른쪽 마우스클릭 -> Maven -> updates project... 클릭

 

 

Several ports (8005, 8080) required by Tomcat v8.5 Server at localhost are already in use. 오류

출처: myblog.opendocs.co.kr/archives/1702

 

1. cmd->  netstat -a -n -o -p tcp
   내가 쓰려는 포트인 8080이 어느 pid에서 사용하는지 확인

 

2. taskkill /f /pid (pid번호)
   해당 pid 프로셋 강제 종료 

 

 

org.springframework.jdbc.CannotGetJdbcConnectionException:Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: 오류

 

Connection refused메시지가 나온것은
2가지 이유가 있을수 있다고 한다.
1) DB서비스 정상적으로 기동되지 않은경우
    => 포트충돌등의 문제가 없는지 메시지를 확인하셔야 합니다.

2) 정상적으로 기동은 되었으나
    계정에대한 접근권한설정이 제대로 되어 있지 않은경우
   => 해당 사용계정에대한 localhost와 remote에대하여 구분하여 접근 권한 설정한다음.
        sql developer등의 DB Client툴에서 접속여부 확인

 

알고보니 MySQL의 경우에는 8시간 동안 request가 오지 않으면 Connection을 끊어버리기 떄문이라고 한다. 서버를 켜놓고 DB를 연동한 상태에서 오래 놔두면 안될 것 같다. 

이럴경우의 해결방법은 

 

private String url = "jdbc:mysql://localhost/spring5fs?characterEncoding=UTF8&serverTimezone=UTC&autoReconnection=true&validationQuery=select 1&testWhileIdle=true&timeBetweenEvictionRunsMillis=7200000";

 

이렇게 DB를 사용하기 전에 Connection이 유효한지 검사를 하는것이라고 한다. 

validationQuery의 값은 사용하는 DBMS마다 다르므로 자신에 맞는 DBMS를 구글링해서 알아보도록하자.

 

하지만 이상하게도 나의 경우는 DB서비스가 다운된 상태였다. 

MySQL 프로그램을 실행해보니. 

여기 Information란에 빨간 글씨로 no connection established 이렇게 씌여져 있었다. 

이럴 경우엔 MySQL의 서비스가 다운된 것이기 때문에 서비스->MySQL 우측 마우스클릭 시작 누르면 되는 것이었다.

그럼 다시 DataBase가 생기고 Connection이 생긴다.  

    'Spring/Spring기본' 카테고리의 다른 글
    • MVC4: 인터셉터 추가
    • MVC 3: 세션, 쿠키
    • MVC 1.5: 컨트롤러 구현 없는 경로 매핑(addViewController), ModelAndView, 커맨드 객체의 중첩과 콜렉션 프로퍼티를 뷰 jsp에서 사용하는 방법, Controller에서 모델을 통한 값 전달
    • MVC 1: 요청 매핑 어노테이션, 리다이렉트, 요청 파라미터 접근, 커맨드 객체, 폼태그
    Per ardua ad astra !
    Per ardua ad astra !
    개발자 지망생이며 열심히 공부하고 기억하기 위한 블로그입니다.

    티스토리툴바