문제 원인
스프링 애플리케이션은 웹 서버를 내장하기 때문에, 하나의 포트에 하나의 스프링 애플리케이션만 실행할 수 있다. 조금 더 자세히 이야기 하면 하나의 포트에 둘 이상의 스프링 애플리케이션이 실행된다면, 사용자로부터 요청을 받았을 때 어떤 애플리케이션에서 요청을 처리해야 할지 알 수 없기 때문에, 하나의 포트에서는 하나의 스프링 애플리케이션만 실행돼야 한다.
이 때문에 이미 스프링 애플리케이션이 사용하고 있는 포트를 다른 스프링 애플리케이션이 사용하려고 하면 다음과 같은 오류가 뜬다.
*보통 스프링 애플리케이션의 기본 포트는 8080번으로 설정되어 있기 때문에 여기서는 8080을 사용 중이라는 오류가 뜨는 상황을 보여준다.
Web server failed to start. Port 8080 was already in use.
웹 서버 실행이 실패했습니다. 포트 8080번은 이미 사용 중입니다.
애러 화면은 그림1과 같이 나온다.
문제 해결 방법
이 문제를 해결하기 위해서는 스프링 애플리케이션이 실행되는 포트를 변경하면 된다. 포트를 변경하는 방법은 간단하다. resources 폴더의 application.properties 폴더에 들어가 server.port 를 추가한 후 값을 8081로 설정하면 된다.
이렇게 server.port 값을 변경하면, 스프링 애플리케이션이 실행될 때 해당 값을 읽어 웹 서버가 해당 포트를 사용하도록 만든다.
따라서 위와 같이 변경 후 애플리케이션을 다시 실행하면, 문제 없이 실행되는 것을 볼 수 있다.
반응형