code

IntellJ IDEA에서 디버거 포트를 열 수 없습니다.

codestyles 2020. 11. 29. 11:43
반응형

IntellJ IDEA에서 디버거 포트를 열 수 없습니다.


IntellJ IDE를 사용하여 디버그 모드에서 응용 프로그램을 설정할 수 없지만 실행 모드는 괜찮다는 문제가 있습니다.

내 OS는 Windows 7, IDE는 IntellJ IDEA, 웹 컨테이너는 Tomcat 6입니다. 오랫동안 시도해 보았고 HTTP 포트와 JMX 포트를 변경했지만 작동하지 않았습니다.

IntellJ를 사용하여 디버그 모드에서 앱을 설정할 때 실패하고 이벤트 로그는 다음과 같습니다.

16:05:35 tomcat 실행 오류 : 디버거 포트를 열 수 없습니다. java.net.BindException "이미 사용중인 주소 : JVM_Bind".

어떤 도움을 주시면 감사하겠습니다.


문제의 핵심은 디버거 포트에 있습니다. 나는 같은 문제를 겪고 있었고 포트 8081 (내 http 포트), 1099 (JMX 포트), tomcat 종료 포트, 모든 java.exe에서 수신 대기하는 모든 프로세스를 죽이고 있었고 여전히 아무것도 없었습니다.

문제는이 디버거 포트 가 다르다는 것입니다. 응용 프로그램을 실행하면 Tomcat이 구성한 포트 (8080, 8081 등)를 통과합니다. 그러나 디버그 모드에서 실행하면 다른 포트를 통과합니다.

IntelliJ에서 Tomcat 구성을 편집하면 마지막 탭은 Startup / Connection 입니다. 여기에서 디버그 모드 의 구성을 확인하면 해당 포트가 표시됩니다. 제 것은 50473이었습니다. 저는 그것을 50472로 변경했고 모든 것이 다시 작동하기 시작했습니다.


나를 위해 IntelliJ Event Log(오른쪽 하단 모서리)에는 로그가 있습니다.

Error running EntitmentTooling-Debug: Cannot run program "/path-to/apache-tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/apache-tomcat-8.5.15/bin"): error=13, Permission denied

Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): java.net.SocketException "Socket closed"

명령

$ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh

권한을 충분히 변경하는 것이 저에게 효과적이었습니다.


Windows를 사용하는 경우 공유 메모리 디버깅으로 전환하여 소켓 문제를 완전히 우회 할 수 있습니다.

여기에 이미지 설명 입력


이것은 나를 위해 일관되게 작동합니다 (예를 들어 통합 테스트를 실행할 때 다시 시작 바람둥이와 같은 일을 할 때 가끔 발생합니다)

1) 포트 1099가 열려있는 프로세스 찾기

sudo netstat -anp | grep tcp | grep 1099
cp6       0      0 :::1099                 :::*                    LISTEN      9857/java

2) 죽여라

kill 9857

3) Tomcat을 시작합니다.


Windows 7과 IntellijIdea 14에서도 같은 문제가 발생했습니다. CTRL + ALT + ESc로 이동하여 Java 프로세스를 종료하고 Java를 찾아서 종료했습니다. 이제 다시 실행하면 응용 프로그램이 다시 작동합니다. 명령 줄이나 셸 (리눅스)로도 수행 할 수 있지만이 작업이 더 쉽습니다.


이 방법으로 문제를 해결했습니다.

  1. 모든 java.exe 프로세스를 죽이려고했지만 쓸모가 없었습니다.
  2. 그런 다음 Tomcat 서버 삭제를 시도했습니다.
  3. 프로젝트를 다시 배포하고 프로젝트를 다시 시작했는데 제대로 작동했습니다.

자세한 내용은 다음 링크를 참조하십시오.

Tomcat 삭제 Tomcat 삭제

새 Tomcat 추가 새 Tomcat 추가


나는이 정확한 메시지를 받았다.

그 이유는 일부 IDE (Eclipse 및 Intellij 사용)가 tomcat 서버를 종료하지 못했기 때문입니다. 또는 그렇게하기 전에 추락했을 수도 있습니다.

이 솔루션은으로 이동했다 C:\...\apache-tomcat-xxx\bin실행 shutdown.


디버그하는 동안이 문제가 발생했습니다.

  1. 내 Tomcat http 포트 8082를 8083으로 변경하려고 시도했습니다 (IntelliJ의 디버그 구성 및 Tomcat-> conf-> server.xml에서도)
  2. JMX 포트를 1099에서 1009로 변경하려고했습니다.
  3. 디버그 구성의 시작 / 연결에서 디버그 포트 변경을 시도했습니다.
  4. TaskManager-> Processes에서 모든 Java 프로세스를 종료했습니다.

나를 위해 일한 유일한 것은 Windows의 작업 관리자로 이동하고 마우스 오른쪽 버튼을 클릭-> 작업 종료로 실행되는 모든 Java 프로세스를 종료하는 것입니다.


에서 서버 인 IntelliJ에서 Tomcat 구성 탭, 변경 JMX 포트를 다른 번호로.


가끔 컴퓨터를 다시 시작하면 모든 것이 정상입니다. 포트 충돌이있을 수 있습니다.

다시 시작하는 동안 Java 또는 Tomcat 인스턴스가 종료되기 때문에 컴퓨터 다시 시작이 작동합니다. 작업 관리자에서 특정 프로세스를 종료하는 것도 고려할 수 있습니다.

이는 context.xml 파일에 문제가있는 경우에도 발생합니다. 제 경우에는 우연히 컨텍스트 값을 변경했습니다.


내 컴퓨터의 DNS가 127.0.0.1 localhost를 놓치기 때문에 동일한 문제가 있습니다. 내 호스트 파일에 127.0.0.1 localhost를 추가하면 괜찮아집니다.


여기에는 여러 가지 이유가 있습니다.
- (응답 해결로 변경하십시오 --- 디버거 포트에 문제가있을 수 있습니다 TM )
-이 (응답 해결할 것 인 IntelliJ 캐시 --Invalidate 캐시 다시 시작 몇 가지 문제가있을 수 있습니다 풍수 스미스 )
-가있을 수 있습니다 JMX, AJP와 같은 다른 포트 문제 ---이 포트 번호도 변경하십시오.
나는 이것을 코멘트로 추가하고 싶었지만 충분한 담당자가 아닙니다.


위의 방법 중 어느 것도 내 경우에는 작동하지 않았습니다. 즉, 실행 구성에서 포트 번호 변경, 컴퓨터 다시 시작, IntelliJ에서 캐시 무효화, netstat에 표시된 프로세스 종료 ( nestat -anob | findstr <port-number>tskill <pid>). 마침내 도움이 된 유일한 것은 startup.batshutdown.bat( .shLinux 및 macOS에서 해당 파일을 사용해야 함)을 통해 수동으로 tomcat을 시작하고 종료하는 것입니다 .


Intelli J에 구성된 서버의 디버그 포트를 변경합니다.

수정됩니다.여기에 이미지 설명 입력


불행히도 다른 모든 솔루션은 작동하지 않았습니다. 이것은 나를 위해 일한 것입니다. 디버거 포트를 다른 포트 번호로 변경했습니다.

Intelij-> 기본 설정-> 빌드, 실행, 배포-> 디버거-> 내장 서버-> 포트 (값 변경)

여기에 이미지 설명 입력


In my case, there was a problem in server.xml for Tomcat/conf folder where I had extra comment tags under another comment tag. So I think, since there was some problem in server.xml, it was not able to start Tomcat. And moreover it copies the tomcat folder from your installation directory to C:\Users\username.IntelliJIdea2017.2\system\tomcat\Tomcat_service


This happens when you have application running on the same port number. One way to do this by killing the process forcefully. Open command prompt as an admin. Run command 'taskkill /IM "java.exe" /F'. This worked for me in Windows. Let me know if this works.


  1. Check "Run" configuration to see which port it is using (8081).
  2. Find all the other processes using that port lsof -t -i :8081
  3. Kill the processes on that port. kill PROCESS_ID
  4. Run Tomcat in Debug mode.

In my case, I wasted so much time on changing debugger port but it was not the issue. Since tomcat was not able to run on the port I chose in Run configuration, I was not able to debug my service.


In my case I had another project open in IntelliJ, and had Tomcat running in debug mode in that project. Stopping that instance of Tomcat resolved the issue.


There are multiple solution for the same.

  1. Either we may close the IDE (e.g. IntellJ)
  2. Find t IND00123:bin devbratanand$ lsof -i:30303 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME idea 437 devbratanand 56u IPv4 0xb2720e580a7d6483 0t0 TCP 10.17.130.41:55222->vmqp-cms-pan-app1.emea.akqa.local:30303 (ESTABLISHED) IND00123:bin devbratanand$ kill -9 437

try chmod a+x /path/to/tomcat/bin/catalina.sh if you run it in intelliJ

참고 URL : https://stackoverflow.com/questions/26273743/unable-to-open-debugger-port-in-intellj-idea

반응형