인프런 커뮤니티 질문&답변

유진이님의 프로필 이미지
유진이

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Model 추가 - v3

인텔리제이 server.port=9900 작동하지 않을 경우 어떻게 해결해야 할까요?

작성

·

1.4K

0

안녕하세요. 영한님 좋은 강의 잘 듣고 있습니다.

 

강의를 듣던 중 서버를 실행시키는 도중에서 문제가 발생했습니다. 이전에는 잘 돌아가던 서버가 갑자기 실행 시 8080 포트가 이미 사용 중이라고 뜹니다. 저는 resources 하위의 application.properties에 server.port=9900이라고 기재한 상태입니다. 이 전까지는 서버를 돌리고 localhost:9900을 띄우는데 까지 문제가 없었습니다. 

 

문제를 해결하기 위해 저는 cmd창에 netstat을 이용해 9900 포트를 확인해봤습니다. 9900 포트는 사용되지 않고 있었고, 1526 포트와 8080 포트가 같은 PID를 가지고 있었습니다. 그래서 taskkill을 통해 해당 포트를 죽이려고 했지만 명령어가 먹히지 않았습니다. 따라서 구글링을 했고, 안전모드 실행, 관리자모드 실행 등을 통해 포트를 죽일 수 있었습니다. 하지만 인텔리제이에서 해당 프로젝트의 서버를 돌리니 서버는 9900이 아닌 8080 포트로 돌아갔습니다. 그래서 저는 여러가지 검색어를 통해 이를 해결 해보려고 노력했지만 역부족인 것 같아 질문 남기게 됐습니다.

 

제가 시도해본 방법은 재부팅, 인텔리제이 껐다 키기, file->setting의 debugger 하위의 built in server가 63342로 돼 있는지 확인, run -> edit configuration -> vm option을 설정해보기 등등이 있습니다. 더 이상 검색어도 떠오르지 않고, 검색해서 나온 방법을 다 시도해봤음에도 해결되지 않아 도움 요청드립니다.

 

참고로 원래 다른 프로젝트가 열려 있었는데 open -> build.gradle -> open this window로 열었는데, 이게 문제를 푸는데 도움이 될까 해서 적어놓습니다.

 

감사합니다.

답변 2

0

유진이님의 프로필 이미지
유진이
질문자

안녕하세요. 답변 감사드립니다. server.port=9900으로 설정해서 그 동안 강의 잘 듣고 실행 했었는데, 몇일 전부터 이러네요.. 어떻게 해결 해야할 지 모르곘습니다. 도와주세요..

 

 

요청드린 내용을 올려주셔서 확인해보았는데, 문제는 없어보이네요.

제공해드리는 프로젝트에서는 어떻게 동작하나요??

유진이님의 프로필 이미지
유진이
질문자

제공해드리는 프로젝트에서는 어떻게 동작하나요? 이 부분이 무엇을 말하는지 잘 모르겠습니다. 해당 프로젝트를 실행할 때 어떻게 동작하는지 물어보신 건가요? 서버 실행 후 localhost:8080으로 실행 후 강의 내 작성한 코드 까지 모두 정상 동작합니다. 

제공해드리는 강의 소스코드를 다운받아 실행했을 때의 상황을 확인 요청드린것이었습니다.

 

유진이님의 프로필 이미지
유진이
질문자

흠.. 강의 파일 다운로드 받아서 servlet 실행 시켜보니 잘 동작합니다. 또 application.properties에 server.port=9900 추가 시 해당 포트로 잘 돌아갑니다. 근데 제 프로젝트를 다시 여니까 server.port가 안먹네요.. 앞 전에 잘 되다가 이러는 이유를 도무지 모르겠네요.. 

유진이님의 프로필 이미지
유진이
질문자

해결해서 댓글 달아둡니다. 

 

[인텔리제이 application.properties 경로가 맞는데 인식 안될 때 해결법]

처음에는 server.port만 작동이 안된다고 생각했습니다. 하지만 오늘 강의를 듣다보니 debug 코드도 안나오더군요. 그래서 application.properties 자체가 인식이 안된다는 것을 느꼈습니다. https://enumclass.tistory.com/175 해당 링크에 보면 .idea라는 것을 삭제하라고 돼 있습니다. 즉, 결론적으로 .idea를 삭제한 후 프로젝트를 다시 빌드하면 해결되는 문제였습니다. 

하지만 저는 .idea를 삭제한 후 더 고생스럽더군요. project jdk is not defined 가 계속 뜨고, setting에 gradle에 가보면 아무것도 안뜨고.. springbootapplication 인식이 안되고, invalidate cache를 실행해도 효과가 없고, 이 과정의 반복이었습니다.

다 기억은 못하지만 큼지막하게 기억나는 오류 해결 과정을 적어두겠습니다. project jdk is not defined라는 오류가 상단에 뜨면 제일 우측에 jdk를 선택할 수 있는 기능이 함께 노출됩니다. 해당 기능 클릭해서 jdk 선택해 주시면 됩니다. 

jdk를 선택한 후 invalidate cache를 실행하거나 프로젝트 서버를 돌리거나 한다면 모두 오류가 납니다. 왜냐하면 springbootapplication이 인식이 안된 상태이기 때문입니다. 해결 과정에서https://jojoldu.tistory.com/364 링크의 비슷한 사례를 찾았습니다. 이 블로그를 보고 해결이 되신다면 해결하시면 될 것 같습니다.

제 경우에는 event log를 눌러도 import 버튼이 없었고, .idea를 지우면 계속 앞의 과정이 반복되는 상황이였습니다. 물론 invalidate cache/restart도 아무런 효과가 없었습니다. 따라서 위 블로그의 설명으로는 해결되지 않는 상황이었습니다.

결론적으로 인텔리제이 우측하단에 표출되는 박스의 하단에 import gradle이라는 버튼을 발견해 클릭하니 오랜 시간 빌드 후 springapplication이 활성화 됐습니다. 그 이후 서버를 돌리니 application.properties가 정상적으로 인식 됐습니다.

 

지금은 import gradle을 이미 한 상황이라 이 문구만 있지만, 저의 경우 이 아래에 이 상자의 반만한 크기의 박스로 뭐라뭐라 나오고 맨 아래 파란 글씨로 import gradle이 있었습니다.

감사합니다.

0

안녕하세요. 유진이님, 공식 서포터즈 OMG입니다.

상황을 자세히 남겨주셔서 대략 어느 상황인지는 알겠으나, 처음 보는 상황이여서 

스프링 프로젝트를 새로 만들어서 다시 확인해주셔야 할 것 같아요.

(포트를 찾아 PID를 킬하는 것은 잘 진행하신 것으로 보입니다.)

- (관리자로 cmd 실행) -  "netstat -ao " 입력하여 포트에 해당하는 PID찾기 - "taskkill /f /pid pid값" 으로 프로세스 킬 하시면 됩니다.

 

우선 제가 의심이 드는 부분은 server.port=9090으로 설정했는데, 8080 포트의 실행이 되었다는 것으로

application.properties의 위치 문제 혹은 server.port=9090의 입력 오류(오타 등)이지 않을까 싶은데요.

코드 내역을 확인할 수 있게 인텔리제이 좌측 프로젝트 구조를 캡쳐해서 올려주세요.

(전체 구조를 볼 수 있게 패키지를 접지 않고 올려주세요.)

또한, application.properties의 내용도 확인할 수 있게 캡쳐 해서 올려주세요.


감사합니다.

유진이님의 프로필 이미지
유진이

작성한 질문수

질문하기