요 에러는 예전 스프링 framework로 톰캣 삽입해서 쓸 때부터 왕왕 봤던 에러다.
가끔 로컬에서 애플리케이션 실행시키면 시작부터 이렇게 error가 뜨는 경우가 있다.
이 에러는 왜 나나요?
에러 메시지 그대로 포트가 이미 사용중인 포트이기 때문이다.
발생 원인으로는
- 동일한 포트를 사용하는 어플리케이션을 번갈아가며 실행 시킨 경우 (이미 다른 하나가 실행중)
- IDE 상에서는 프로세스가 종료되었으나 실제 프로세스는 종료 안 된 경우
등이 있다고 한다.
해결 방법
- 실행 하고자 하는 어플리케이션의 실행 포트를 바꾼다.
- 현재 포트를 사용하고 있는 프로세스를 종료한다.
필자는 명령 프롬프트를 통한 두 번째 방법을 선호한다. (필자의 환경은 Windows이다. Mac 과는 방법이 다르니 주의)
- cmd 창을 열고 아래 명령어를 입력해준다.
netstat -ano
netstat: 현재 TCP/IP 네트워크 연결 상태 확인
a: 모든 연결 및 수신 대기 포트를 표시
n: 주소 및 포트 번호를 숫자 형식으로 표시. 호스트 이름 대신 IP 주소가 표시됨
o: 각 연결의 프로세스 ID(PID)를 표시
명령어를 입력하면, 현재 시스템에서 활성화된 네트워크 연결과 해당 포트의 정보를 확인할 수 있다.
현재 이미 사용 중인 포트 번호는 8080이므로, 8080을 찾아서 PID 번호를 확인해주자.
확인하니 5432 인 것을 확인할 수 있다.
- taskkill 명령어로 해당 포트를 사용하고 있는 프로세스를 종료해준다.
taskkill /f /pid 5432
성공적으로 프로세스가 종료되었다. 이제 어플리케이션을 실행하면 정상적으로 실행 될 것이다.
자꾸 저 CLI 명령어를 잊어버려서 매번 찾아봤는데 .. 이제는 절대 안 잊어버릴 수 있을 것 같다 ^_^ 부들
'General > debugging' 카테고리의 다른 글
[삽질] cannot find symbol method value() 에러 해결 (0) | 2024.02.10 |
---|