Soy's Devlog
서버 구동 시 Address already in use (Bind failed) 에러 본문
현재는 sts에서 톰캣을 사용하여 웹 개발 중인데, 톰캣을 삭제 후 다시 import 하거나 최초 실행 시 Bindexception이 발생할 때가 있다.
새로운 프로젝트 생성 후 톰캣을 최초 실행 시 발생했다....
이런 내용인데 pot 가 8005가 아닌 8080, 8090 등으로 에러가 나는 경우도 있다.
화면 그대로 뭐... 이미 해당 포트가 사용중이라는 뜻이다. 이미 사용중인 port를 웹서버가 중복사용하여 기동시키려다 보니 중복에러가 발생한 것.
해결법은 간단하다!
맥의 경우 터미널에서 해당 명령어를 실행해 준다.
> lsof -i :8005
현재 8005 포트가 실행 중인 것 과, 해당 PID 를 확인 할 수 있다.
> kill -9 3773
이렇게 되면, 해당 port가 종료되고 다시 톰캣을 구동시키면 에러가 발생하지 않는다!
윈도우의 경우
> netstat -a -n -o -p tcp
> netstat -anp | grep LISTEN | grep :포트번호
사용중인 tcp 목록이 쭉 나오는데 문제의 port를 찾아 해당 PID 를 확인한다.
> taskkill /f /pid 3773
해당 pid를 kill 해준 후 다시 확인해 보면 해당 port가 종료되어 있다.
하지만!
나의 경우 port가 제대로 종료되지 않았는지 평소라면 터미널에서 포트를 종료하면 정상작동 했는데, 그럼에도 에러가 계속 발생하는 경우가 있었다ㅠㅠ
꼭 localhost를 8080만 쓰라는 법은 없으니, 아예 localhost port 를 변경 해 주었다.
- 이클립스 톰캣 디렉터리의 server.xml
- 톰캣 overview 에서 직접 수정
이 중 어떤 것을 수행해도 상관 없다
가급적이면 tomcat admin port 도 함께 변경 해 주는 것이 좋다는 조언을 듣고... 함께 변경해 주었다.
8000번대는 내부에서 사용하는것들이 많아 8200번대로 올려 변경해 주어 해결했다...!!!
이 외에도 프로젝트 클린, web.xml 확인, ( servlet-name, servlet-class 등 ) 을 확인해 보는 방법도 있다
'Web > Spring' 카테고리의 다른 글
Maven(메이븐)과 Gradle(그래들) 개념, 비교 (0) | 2022.02.03 |
---|---|
STS 에서 프로젝트 war로 export (0) | 2020.12.30 |