hibernate가 기존 DB 테이블을 재생성하는 문제
·
트러블 슈팅
문제점스프링 서버와 DB를 두 개의 컨테이너로 생성하여 운영환경에서 배포할 계획이었다.DB 컨테이너는 컨테이너 생성 시 init.sql을 통해 [유저 권한, DB 생성, Table 생성, 레코드 삽입] 동작이 수행된다.스프링 서버와 DB를 Docker Compose를 통해 컨테이너를 생성하고나니, DB에 init.sql을 통해 생성해 두었던 레코드가 삭제되어 있었다.  원인 모색두 가지 원인으로 생각해 보았다.DB 컨테이너의 init.sql가 정상적으로 수행되지 않았다.DB 컨테이너의 init.sql은 정상적으로 수행되었으나, 스프링 컨테이너 시작 시 hibernate에 의해 수정되었다.  1.  DB 컨테이너의 init.sql이 정상적으로 수행되지 않았다 ?유저 권한 및 DB, Table 생성은 잘 되..
JPA Entity 매핑 관련 오류(java.sql.SQLNonTransientConnectionException)
·
트러블 슈팅
문제 상황도커를 이용해 스프링 서버와 DB를 각각 컨테이너에 띄워 관리하기 위해 도커 설정을 하고, 컨테이너로 띄웠다.그런데, 실행 이후 서버 컨테이너가 다음과 같은 오류와 함께 종료되었다. java.sql.SQLNonTransientConnectionException: Socket fail to connect to host:address=(host=docker-route-guide-db-1)(port=3306)(type=primary). Connection refused 내가 생각했던 원인도커에서 DB 관련 설정이 잘못되었다.스프링에서 DB 관련 설정이 잘못되었다.Dialect 호환이 잘못되었다.DB 컨테이너와 스프링 컨테이너간의 통신이 되지 않는다 1. 도커에서 DB 관련 설정이 잘못되었다?Docke..
DB 연동을 위한 도커 경로 설정 문제
·
트러블 슈팅
문제 상황작성된 스프링 프로젝트를 도커를 이용해 배포하려던 상황이었다.로컬에서는 간편한 테스트를 위해 H2 DB를 사용하고 있었고, 배포 환경에서는 따로 DB 컨테이너를 띄워 MariaDB와 연동하려고 했다.H2와 MariaDB는 application.yml 파일 설정이 다르므로 상황마다 매 번 yml 파일을 수정해야하는 점이 불편하여두 개의 설정 파일을 두고, 실행 시 상황에 따라 바꿀 수 있도록 시도했다.이후 도커를 이용하여 서버와 DB 컨테이너를 띄우고 나니, 서버 컨테이너에서 다음과 같은 오류가 발생했다.java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at org.mariadb.jdbc.HostAddre..
Docker build context와 파일 인식
·
트러블 슈팅
문제 상황DB 컨테이너와 JAVA 컨테이너를 하나의 Compose 파일로 묶어서 관리하는 과정에서 문제가 생겼다. 문제 상황 docker-compose up 으로 컨테이너 생성 시 configweb의 Dockerfile에서 COPY 경로를 찾을 수 없다는 오류가 발생했다 오류 발생 당시 소스코드 COPY 경로를 담고 있는 변수는 JAR_FILE이므로, JAR_FILE의 경로가 잘못되었다는 의미이다. Dockerfile Build 과정에서 설정한 context 위치는 Docker/configweb 이다.따라서, JAR_FILE의 상대 경로 또한 Docker/configweb을 기준으로 삼으니 설정된 경로는 문제될 것이 없어보였다. 열심히 검색해본 결과.. 경로는 문제가 없었지만, context의 위치가 문..
[Spring webFlux] Unable to load io.netty.resolver.dns.macos ... 오류
·
트러블 슈팅
문제webFlux 디펜던시를 추가한 후 서버를 실행하니 다음과 같은 오류가 나타났다.2024-03-28T17:41:10.857+09:00 ERROR 9091 --- [nio-8080-exec-2] i.n.r.d.DnsServerAddressStreamProviders : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'...
파일 경로 설정과 URL 객체 인코딩 트러블슈팅
·
트러블 슈팅
파일을 통한 입출력을 테스트하던 중, 크게 두 가지 오류가 발생했다. 문제 해결 과정을 설명하기에 앞서 오류 발생 코드는 다음과 같다. Calculator는 파일에 쓰여진 숫자를 라인단위로 읽고, 그 합을 모두 더하는 클래스이다. 실행 과정 1. Calculator 객체 생성 2. calcSum 함수의 매개변수로 "numbers.txt" 파일의 경로를 넘김 3. calcSum함수는 매개변수로 넘어온 경로의 파일을 읽고, sum을 리턴함 4. 리턴 값이 10과 일치하는지 검사 첫번째 오류 문제 상황 getResource() 메서드가 null 값을 반환하여 getPath() 함수를 호출할 수 없다는 오류가 발생한다. 문제 원인 getClass.getResource()는 호출한 클래스 패키지를 기준으로 상대경..
OSNIE
'트러블 슈팅' 카테고리의 글 목록