Spring Boot 어플리케이션의 이클립스에서 포트 XXXX에서 수신하도록 설정된 Tomcat 커넥터가 시작되지 않았습니다.
Spring Framework를 사용하여 REST API를 개발하고 있습니다.
처음에는 같은 문제로 어플리케이션을 실행할 수 없었습니다.8080년 이 하나의 은 '이 문제를 해결하다'를 것이라는 .application.properties
src/main/resources
8090번 이치노포토 8090으로 리슨 하도록 서버를 셋업 합니다.이것은 효과가 있었지만, 처음으로 어플리케이션을 두 번째로 실행하려고 할 때마다 같은 예외가 발생하고 있습니다.
Description:
The Tomcat connector configured to listen on port 8090 failed to start. The port may already be in use or the connector may be misconfigured.
Action:
Verify the connector's configuration, identify and stop any process that's listening on port 8090, or configure this application to listen on another port.
제가 알기로는 이 프레임워크는 내장된 Apache Tomcat 인스턴스를 사용하여 모든 애플리케이션을 배포합니다.
두 번째로 앱을 실행하려고 해도 서버가 재부팅되지 않기 때문에 출력에 "포트가 이미 사용 중이거나 커넥터가 잘못 구성되어 있을 수 있습니다."라고 표시됩니다.
따라서 좀 더 구체적인 질문은 apache tomcat의 내장 인스턴스를 수동으로 또는 프로그래밍 방식으로 어떻게 관리할 수 있는가 하는 것입니다.
application.properties
을 사용하다잘 작동하지만, 다시 말하지만, 처음입니다.아시다시피 앱이 실행될 때마다 똑같이 할 수는 없습니다.
포트의 프로세스 ID(PID)를 찾습니다(예: 8080).
Windows 의 경우:
netstat -ao | find "8080"
Windows 이외의 플랫폼:
lsof -i:8080
발견한 프로세스 ID를 삭제합니다(예: 20712).
Windows 의 경우:
Taskkill /PID 20712 /F
Windows 이외의 플랫폼:
kill -9 20712 or kill 20712
콘솔에서 대화상자의 오른쪽 상단을 보면 부저와 같은 빨간색 버튼이 보일 것입니다.방금 실행한 스프링 부트 애플리케이션을 올바르게 정지하려면 이 빨간색 버튼을 누르면 문제가 해결됩니다.이게 도움이 됐으면 좋겠네요!
이 오류를 해결하는 또 다른 쉬운 방법은 콘솔을 마우스 오른쪽 버튼으로 클릭하고 Terminate/Disconnect All을 클릭하는 것입니다.애플리케이션을 실행하면 정상적으로 동작합니다.
문제: 어플리케이션을 정지하지 않았거나 어플리케이션이 같은 포트로 이미 실행되고 있기 때문입니다.
해결 방법: 다시 시작하기 전에 이전 응용 프로그램을 중지하고 포트를 개방해야 합니다.
플랫폼에 따라 다음 명령을 실행하여 응용 프로그램을 중지할 수 있습니다.
창문에
netstat - anp | find your application port number' --> find PID
태스크킬/F/PID
Linux의 경우
netstat - ntpl | grep "응용 프로그램 포트 번호"
kill pid // 이전 명령에서 얻을 수 있는 pid
Mac OS의 경우
lsof - n - iTCP : "포트 번호"
kill pid //pid 이전 명령에서 얻을 수 있습니다.
프로세스를 찾아 종료합니다.Windows에서 Control+를 실행합니다.Alt+Processes(프로세스) 탭에서 "Java(TM) Platform SE Binary"예를 들어 다음과 같습니다.
Ubuntu에서는 "ps aux | grep java"를 사용하여 프로세스를 검색하고 "kill -9 PID"를 실행할 수 있습니다.NUMBER"를 클릭하여 프로세스를 종료합니다.
또는
Spring 부팅 응용 프로그램을 사용하는 경우 application.properties로 이동하여 다음을 추가합니다.
server.port = 8081
앱이 https에서 실행되는 경우 다음 속성 아래에 올바른 값을 입력하십시오.
server.ssl.key-store-password=
server.ssl.key-alias=
여기에 잘못된 값을 입력해도 동일한 오류가 발생함
Windows 의 경우:
시작하려면 시작을 클릭한 다음 cmd를 입력하여 명령 프롬프트를 여십시오.명령 창에서 다음 명령을 입력합니다.
netstat -a -n -o
위의 명령어에서는 -o 파라미터는 테이블의 끝에 PID를 추가하는 파라미터입니다.Enter 키를 누르면 다음과 같은 메시지가 나타납니다.
이 포트를 사용하고 있는 프로세스의 이름을 표시하려면 CTRL + SHIFT + ESC 키를 눌러 태스크 매니저로 이동한 후 프로세스 탭을 클릭합니다.Windows 10 에서는, 「상세」탭을 클릭합니다.
기본적으로 태스크 관리자는 프로세스 ID를 표시하지 않으므로 보기를 누른 다음 열 선택을 눌러야 합니다.
백그라운드에서 실행되고 있는 서비스를 조사해야 할 수도 있습니다.이 작업을 수행하려면 오른쪽 버튼을 클릭하고 아래와 같이 열려 있는 서비스를 선택합니다.
도움이 되었으면 좋겠다:)
이 문제는 다음 두 가지 방법으로 해결할 수 있습니다.
- 8080에서 실행되는 응용 프로그램 종료
netstat -ao | find "8080" Taskkill /PID 1342 /F
- application.properties 파일에서 스프링 서버 포트 변경
server.port=8081
- 사용중인 포트를 확인합니다.netstat - ntlp
- 해당 포트 kill : -9 x x x x xxxx
이 문제를 해결하는 보다 쉬운 방법은 application.properties 파일의 포트를 변경하는 것입니다.
server.port=8081
이 상황을 처리하거나 회피하는 방법은 두 가지가 있습니다.
- 응용 프로그램을 다시 실행하기 전에 이전 연결을 종료하십시오.
Open the console --> right click --> terminate all.
- 스텝 1에서 액션 언급을 실행하는 것을 잊은 경우
- 응용 프로그램에서 사용되는 포트를 알아내면 콘솔창에 스택트레이스가 표시됩니다.
- cmd 단위로 netstat -aon 명령을 실행하여 포트에 연결된 프로세스 ID를 확인합니다.
- 이 프로세스를 종료하고 애플리케이션을 재실행합니다.
커맨드 라인을 사용하고 싶지 않은 경우는, 컴퓨터를 재기동하면 도움이 됩니다.
제어 후 동일한 문제가 발생하는 경우 포트를 할당하는 의심스러운 Java 프로세스가 없으므로 프로세스를 종료할 때 빨간색 사각형이 표시되지 않으며 스프링 부트 애플리케이션용으로 다른 포트를 시도해도 변경되지 않습니다.
바보같이 들릴지 모르지만 일식을 재개하는 것은 효과가 있습니다.:)
Windows 에서는, 다음의 순서에 따릅니다.
1) 검색 서비스 2) Apache Tomcat 찾기 3) 마우스 오른쪽 버튼을 클릭하여 종료 4) 스프링 부트 응용 프로그램을 다시 실행합니다.
일식이나 인텔리주에서도 같은 문제가 있었습니다.많은 대체 솔루션을 사용해 본 결과, 간단한 솔루션을 발견했습니다.이 설정을 어플리케이션에 추가합니다.properties:spring.main.web-application-type=none
자동 빌드 종속성과 같은 devtools가 있는 경우 제거합니다.자동으로 프로젝트를 빌드하고 실행합니다.수동으로 빌드하면 port in use가 표시됩니다.
위의 솔루션 중 어느 것도 동작하지 않고 IntelliJ Idea(버전 2020.3을 사용하고 있습니다)를 사용하고 있는 경우는, 서비스 탭으로 이동하여 실행 Configuration을 우클릭한 후, clear content를 클릭합니다.
OS는 프로세스 식별자(PID)라고 하는 특수한 번호를 할당합니다.이 번호는 모든 프로세스와 실행 중인 포트에 고유합니다.또, 우선 포토로 실행되고 있는 프로세스를 정지하면, 그 포토에 애플리케이션을 도입하기 위한 블록이 해소됩니다.
- 순서 1: 포트의 프로세스 ID(PID)를 검색합니다(예: 8080).
Windows 의 경우:
netstat -ao | find "8080"
- 순서 2: 찾은 프로세스 ID를 삭제합니다(예: 20712).
cmd의 Windows에서 마우스 오른쪽 버튼을 클릭하고 관리자로 실행: 여기에 이미지 설명을 입력합니다.
Taskkill /PID 20712 /F
Spring Boot 2 이후 버전의 경우 응용 프로그램컨피규레이션파일(application.properties 또는 application.yaml)에 속성을 추가합니다.
spring.main.web-application-type=SERVLET
웹 어플리케이션유형은 다음 중 하나입니다.
- 없음 - 응용 프로그램은 웹 응용 프로그램으로 실행되어서는 안 되며 내장된 웹 서버를 실행해서는 안 됩니다.
- 사후 대응 - 응용 프로그램은 사후 대응형 웹 응용 프로그램으로 실행되어야 하며 내장된 사후 대응형 웹 서버를 시작해야 합니다.
- SERVLET - 응용 프로그램은 서블릿 기반 웹 응용 프로그램으로 실행되어야 하며 내장된 서블릿 웹 서버를 시작해야 합니다.
콘솔에서 마우스 오른쪽 버튼을 클릭하여 종료합니다.또는 [정지(Stop)]을 클릭합니다.
언급URL : https://stackoverflow.com/questions/43026358/spring-boot-application-in-eclipse-the-tomcat-connector-configured-to-listen-on
'programing' 카테고리의 다른 글
React에서의 브라우저 검출JS (0) | 2023.03.17 |
---|---|
JavaScript에서 json-object 키를 가져옵니다. (0) | 2023.03.17 |
연락처 양식 7 - 같은 줄에 여러 텍스트 필드 (0) | 2023.03.17 |
문서에 적용된 스키마 유형이 지원되지 않습니다.json (0) | 2023.03.17 |
Oracle의 단일 문에 외부 키 제약 조건이 있는 새 열을 추가하는 방법 (0) | 2023.03.17 |