-
Spring 프로젝트 회고 (2) - 자주 만났던 에러들BackEnd 2022. 8. 31. 02:52
Spring을 공부하고 막 토이 프로젝트를 했을 때, 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 라는 책의 도움을 많이 받았다. 유명한 책이기도 하고, 많은 블로거분들께서 포스팅해주셔서 구글에 검색하거나 저자님의 깃허브 & 블로그에 들어가면 쉽게 내용을 찾을 수 있다.
스프링으로 지금도 프로젝트를 하고 있는데, 내가 자주 만났던 오류들을 까먹지 않기 위해 포스팅하는 글.
📌 Port 8080 was already in use ERROR
Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
위와 같은 에러가 뜨는 경우이다. 이 경우 8080 포트 사용하는 프로세스를 kill하면 된다.
netstat -tnlp | grep 8080
이 명령어를 치면 8080 포트를 사용하는 프로세스의 번호가 뜬다. 아래 이미지로 보면 25393임을 알 수 있다.
kill -15 25393
위 명령어로 해당 프로세스를 kill하고, 다시 ./deploy.sh 파일을 실행시키면 된다.
사실 저기 CURRENT_PID에 해당하는 명령어를 쳤을 때 제대로 안 나오는 듯 해서 그냥 deploy.sh 실행 전에 위에 써있는 8080 포트 먼저 kill하면 별 일 없이 잘 돌아간다. 내 추측이지만, 저 CURRENT_PID 부분에 위 명령어 넣는게 더 나을 수도 있을 것 같다. 렉 현상 때문...
⭐ EC2에서 ./deploy.sh 파일 실행할 때 ApplicationTest에서 멈춰가지고 번번히 렉걸리는 현상
30분이상 꿈쩍도 안하길래 강제 종료 시키고 nohup.out 파일 확인해보면 내 경험상 대부분 밑에 후술할 plain.jar 문제 아니면 위의 8080 포트 문제이다. 프로세스 종료가 제대로 안 되는 문제인 것 같은데 아래 써있는 옵션 + 8080 kill 같이 쓰면 빌드 금방된다.
📌 No main Manifest Attribute in ~~ demo-0.0.1-SNAPSHOT-plain.jar ERROR
spring boot 2.5 이상부터 빌드 시 발생하는 에러. 구글링하면 build.gradle파일에 다음을 추가하라고 뜬다.
jar { enabled = false }
하지만 내 경우는 이미 EC2에 올라간 상황이었는데, 위의 옵션을 추가해서 커밋해도 ... 해결되지 않았다.
JAR_NAME=$(ls -tr $REPOSITORY/*.jar | grep -v "plain" | tail -n 1)
그래서 구글링 끝에 다음 옵션도 설정해주었다. plain파일 자체를 실행대상에서 제외하는 방법이다. plain.jar에 main method가 없어서 발생하는 오류다. 나처럼 위의 build.gradle 옵션추가로 해결 안 될 경우 사용하면 된다. 나는 EC2 상에서 plain.jar파일도 그냥 삭제했다....ㅎ
📌 그 외 기타 기록용 Tip?
- putty의 세션을 종료 시에는 exit명령어로 종료하자. 일정 시간이 지나면 세션이 자동으로 끊기긴 하지만 직접 종료하는 쪽이 빠른 접속을 위해 좋을 듯
- Starting a Gradle Daemon, 1 busy and 6 stopped Daemons could not be reused, use --status for details
이게 아까 위에서 언급한 렉 걸릴때마다 중지했다가 다시 빌드했다가 하면 자주 뜨는 출력문이다. gradle --stop으로 중지시킬 수 있고, 내 기억으로 이 gradle도 바로 kill되는것이 아니고 일정 시간이 지나야 사라진다고 구글링을 통해 본 것 같다. (아니면 댓글 남겨 주세요..)
아무튼 이 3가지 정도 기억하면 책과 구글링을 통해 스프링 프로젝트를 개발하는데 큰 무리 없을 것 같다. 끝!
📌 참고한 블로그
'BackEnd' 카테고리의 다른 글
Spring 프로젝트 회고(1) - 회원가입 (0) 2022.07.16