-
[오류] org.apache.catalina.LifecycleException: Protocol handler start failedIT/SpringBoot&AWS 2022. 5. 15. 22:25
참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
참고 URL - https://github.com/jojoldu/freelec-springboot2-webservice/issues/724
원인: 새로운 프로젝트가 8080 포트로 띄워야 하는데 이미 8080 포트를 사용하고 있어 기동 실패
해결방안: 기동 전 8080 포트 사용여부 확인하여 사용 중이면 kill 후 진행할 수 있도록 조치사실 deploy.sh 스크립트에 8080 포트 사용여부 확인하는 부분이 적용되어 있어서, deploy.sh 실행 권한이 아닐까? 보안 그룹 설정 문제 아닐까? 뒤적뒤적 해봤는데.. 스크립트 명령어가 잘못 기재되어 있었다.
▶ pgrep -fl freelec-springboot2-webservice | grep jar | awk '{print $1}'
echo "> 현재 구동 중인 애플리케이션 pid 확인" CURRENT_PID=$(pgrep -fl freelec-springboot2-webservice | grep jar | awk '{print $1}') echo "현재 구동 중인 애플리케이션 pid: $CURRENT_PID" if [ -z "$CURRENT_PID" ]; then echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다." else echo "> kill -15 $CURRENT_PID" kill -15 $CURRENT_PID sleep 5 fi
실제 콘솔에서 상기 명령어 수행 시 조회되지 않음을 확인할 수 있다. grep 시 jar가 아닌 java로 조회하면 정상 조회되는데,, jar 가 java 옵션으로 인풋된 명령어라 grep 시 잡히는게 아닌가? 라고 추측해 본다... 아무튼 명령어를 java 로 수정 후 재배포하면 정상 처리됨을 확인할 수 있다!
[ec2-user@ip-172-31-45-74 step2]$ pgrep -fa freelec-springboot2-webservice
28974 java -jar -Dspring.config.location=classpath:/application.properties,classpath:/application-real.properties,/home/ec2-user/app/application-oauth.properties,/home/ec2-user/app/application-real-db.properties -Dspring.profiles.active=real /home/ec2-user/app/step2/freelec-springboot2-webservice-1.0.0-SNAPSHOT-20220515130517.jar
[ec2-user@ip-172-31-45-74 step2]$
[ec2-user@ip-172-31-45-74 step2]$
[ec2-user@ip-172-31-45-74 step2]$ pgrep -fl freelec-springboot2-webservice | grep jar
[ec2-user@ip-172-31-45-74 step2]$ pgrep -fl freelec-springboot2-webservice | grep java
28974 java명령어 수정
▶ pgrep -fl freelec-springboot2-webservice | grep java | awk '{print $1}'
'IT > SpringBoot&AWS' 카테고리의 다른 글
nginx를 사용한 무중단 배포 환경 구성 (0) 2022.05.15 AWS EC2 에 tree 설치하기 (0) 2022.05.15 AWS EC2 - CodeDeploy 연동 설정 (0) 2022.05.14 Travis CI로 빌드하기 (0) 2022.05.14 소셜 로그인 - OAuth 2.0 구글API 등록 오류 (0) 2022.05.14