스프링 부트로 웹 애플리케이션 개발 중에 아래와 같은 에러가 발생했다.
Port 8080 was already in use.
1. 에러 발생 원인
- 말 그대로 해당 포트를 사용하는 애플리케이션이 실행 중일 때, 동일한 포트를 사용하는 애플리케이션을 중복으로 실행했을 때 발생
- 만약 이전 애플리케이션을 종료했는데도 이러한 에러가 발생한다면 IDE 상으로는 종료되었지만 실제 프로세스는 종료되지 않은 경우에 속함
2. 해결 방법
- 8080 포트를 사용하고 있는 프로세스를 강제로 종료하는 방법
- 현재 애플리케이션에서 사용하는 포트를 바꾸는 방법
2-1. 8080 포트를 사용하고 있는 프로세스 강제 종료 (mac OS)
- 터미널에서 8080 포트를 사용하고 있는 프로세스 검색
lsof -n -i -P | grep 8080
- 검색된 프로세스는 다음과 같은 형태로 출력
COMMAND | PID | USER | FD | TYPE | DEVICE | SIZE/OFF | NODE NAME |
java | 31120 | anchangmin | 99u | IPv6 | 0x1825b1faed1ec6e7 | 0t0 | TCP *:8080 (LISTEN) |
- 검색된 프로세스 종료
kill -9 (종료하고 싶은 프로세스의 PID)
- 다시 검색 => 프로세스가 종료되었음을 확인
2-2. 현재 애플리케이션에서 사용하는 포트 변경
- application.yml 에 다음과 같은 코드를 추가한다. (8081 포트로 변경 예시)
server:
port: 8081
- 애플리케이션을 실행해서 사용 포트 확인 => 8081 포트 사용함을 확인
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 페이징 기능 구현 ( + 페이징, 정렬, 검색, 에러 메시지 포함 예제) (1) | 2024.01.03 |
---|---|
[SpringBoot] MySQL 연동 (maven, gradle) (0) | 2023.12.12 |
[Spring Boot] 스프링 구동 시에 특정 코드 자동 실행시키기 (Command Line Runner, Application Runner) (1) | 2023.11.22 |
[Spring Boot] Gradle 빌드해서 Jar 파일 생성, 실행 (0) | 2023.11.22 |
[Spring Boot] error: invalid source release: 21 에러 해결 (1) | 2023.11.22 |