본문 바로가기
Tools/Eclipse & STS

[Tomcat] Several ports required by Tomcat Server at localhost are already in use. (포트 중복 에러)

by 썸머워즈 2019. 1. 20.
반응형

 

"Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use."

 

알다시피 이런 에러들은 생각보다 자주 발생하는데 나 같은 경우에는

 

Tomcat 실행도중 비정상 종료되어 해당 포트가 이미 실행 되어 있는경우

혹은

다른쪽에서 이미 포트를 사용하고있을때 발생하였다.

 

역시 그 중에서 가장 흔한 포트인 "8080" 포트에서 나 역시 에러가 발생하였다.

(스프링과 오라클을 같이 사용할 경우 기본포트가 8080이기때문에 자주 발생하곤 한다.)

 

그외에 다른 경우가 있을 수 있으나 이 두가지 경우밖에 잘 모르겠다.

 

해당 게시글은 포트를 바꾸거나 하는 기본적인 해결방안이 아니라

비정상 종료 되어 혼자 실행되어있는 포트를 강제종료하기 위한 게시글 내용이다.


사용중인 포트를 강제 종료 시켜주기 위해서

cmd 창(명령 프롬프트)을 열어보자

그리고

netstat -a -n -o -p tcp

를 입력해주어 아래와 같이 현재 pc에서 사용중인 포트 목록을 확인해보자.

여기서 원하는 포트를 찾고 pid를 확인하자

(pid는 고유 아이디라 생각하면 된다.)

 

8080포트를 기준으로 현재 8080포트의 pid는 1876이다.

(pid는 고정이 아니니 cmd를 열어 직접 확인하자.)

 

pid를 확인하였으면 해당 pid를 강제종료 시켜줄 것이다.

cmd창에

taskkill /f /pid 1876

를 입력해주자.

위와같이 프로세스가 종료되었습니다. 라고 뜨며 

다시 명령어를 통해 확인해보면 

종료한 8080포트는 없어진것을 확인할 수 있다.


위와 같은 절차를 이용하면 정상적으로 다시 실행이 되는것을 확인할 수 있다.

 

추가적으로 위와같은 방법이 아닌 다른 방법 역시 찾아보니 있어서 정리해본다.

 

cmd창

netstat - an | findstr 8080 과 8009 를 입력해 보자

8080은 사용중이므로 저런식으로 뜨고 8009는 사용중이 아니여서 아무것도 표시가 안된다.

그리고

 

netstat - anb > temp.txt

 

notepad temp.txt

 

를 각각 순서대로 쳐보자

그러면 아래와 같은 화면이 뜰 것인데

 

 

C:\Users\HAN'S> taskkill /f /im war3.exe 성공: 프로세스 "war3.exe"(PID 5004)이(가) 종료되었습니다.

 

라는식이 뜨면 종료가 성공적으로 처리가 된것이다.

반응형


댓글

TOP