관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

이클립스에서 톰캣 서버 작동 오류 발생시 문제 해결하기 - 포트번호 확인 불가 본문

웹 · 앱 개발/디버깅

이클립스에서 톰캣 서버 작동 오류 발생시 문제 해결하기 - 포트번호 확인 불가

huenuri 2024. 12. 10. 17:59

조금 전에 그리고 좀 전에도 계속 포트 번호 이상 문제가 발생해서 이 문제에 대한 개발일지를 써보기로 했다. 조금 전에는 어찌어찌 해결을 했는데 이번에는 1시간이 넘도록 해결이 되지 않았다.

하나씩 문제의 원인을 찾아가며 드디어 해결했다. 괜히 프로젝트 파일에 있는 서블릿과 HTML 파일을 삭제한 것 같다. 근데 이상하게도 비주얼 코드로 플라스크 작업을 하면 꼭 오류가 발생한다. 이번에는 프로그램을 꺼도 문제가 계속 발생했다.


 

 

 

 

톰캣 서버 사용 중 서버 작동이 안될 때

 

 

 

위 오류 메시지("Server Tomcat v9.0 Server at localhost failed to start")는 Tomcat 서버가 시작되지 못했다는 것을 의미한다.

 

포트 충돌 문제

원인

  • Tomcat이 사용하려는 기본 포트(8080 또는 8005 등)가 이미 다른 애플리케이션에서 사용 중일 가능성이 있음

해결방법은 프로세스를 종료하고 톰캣 포트 번호를 변경하는 것이다.


 

 

 

에러 메시지에 따르면, Tomcat이 사용하는 기본 포트(8005, 8080, 8081)가 이미 다른 프로세스에서 사용 중이라서 Tomcat이 시작되지 못하는 상황이다. 포트 충돌 문제를 해결해야 한다.

이제 문제를 해결해보자.


 

 

1. 충돌하는 프로세스 확인하기

다음 명령어를 입력한다.

netstat -ano | findstr "8005"
netstat -ano | findstr "8080"
netstat -ano | findstr "8081"

 

 

그런 다음 프로세스를 종료한다.


 

 

 

2. 프로세스 종료하기

taskkill /PID <PID번호> /F

 

이러한 명령어를 입력하면 된다. 명령어를 통해 각 포트를 사용 중인 프로세스(PID)를 확인할 수 있다.

  • 8005: PID 12432
  • 8080: PID 3124
  • 8081: PID 12432

 

하지만 엑세스가 거부되고 있다.

 

원인

  1. 권한 부족
    • 현재 명령 프롬프트를 관리자 권한으로 실행하지 않았기 때문에 해당 프로세스를 종료할 수 없음
  2. 시스템 프로세스
    • 해당 PID(3124)가 시스템에서 중요한 프로세스이거나, 사용 중인 애플리케이션의 일부라 강제로 종료할 수 없게 보호되고 있음
  3. 백그라운드 서비스
    • 특정 서비스(예: Windows Service)가 8080 포트를 사용하고 있을 가능성이 있음

 

 

해결 방법

1. 관리자 권한으로 명령 프롬프트 실행

  1. 명령 프롬프트를 관리자 권한으로 실행
    • Windows 키 → "cmd" 입력 → 명령 프롬프트를 우클릭 → 관리자 권한으로 실행
  2. 다시 프로세스 종료 명령 실행

 

 

3. 관리자 권한으로 실행하기

명령 프롬프트를 관리자 권한으로 실행하고 다시 명령어를 입력한다.

 

이제 성공적으로 프로세스가 종료되었다.


 

 

 

4. 프로세스 여부 확인

프로세스를 종료한 후 포트가 해제되었는지 확인한다.

netstat -ano | findstr "8005"
netstat -ano | findstr "8080"
netstat -ano | findstr "8081"

 

 

이제 서버를 다시 START한다.


 

 

5. 톰캣 서버 시작하기

Servers에서 Start를 클릭한다.

 

 

 

서버가 잘 실행되는 것을 볼 수 있다. 내가 만들려는 서블렛에서도 잘 되는지 확인해볼 것이다.

 


 

 

 

정리를 마치고

하지만 무슨 이유인지 내가 하려는 프로젝트로 만들자 다시 원상복귀 되며 실행되지 않았다. 오늘은 그 이유를 알 수 없을 듯하여 그냥 넘어가기로 했다.

아무튼 개발은 정말 어렵다. 잘 되는 날보다 안되는 날이 더 많은니..