자바 프로젝트 원 격 디 버 깅 방법 절차(tomcat,springboot)

우리 가 프로젝트 를 실행 할 때,일반적으로 현지에서 debug 를 진행 합 니 다.그러나 분포 식 마이크로 서비스 라면 원 격 debug 를 선택 하 는 것 이 우리 가 개발 한 이기 입 니 다.
환경.
apache-tomcat-8.5.16
Linux
원 격 디 버 깅 을 사용 하 는 방법
tomcat 원 격 디 버 깅 시작
방법.
tomcat 의 빈 디 렉 터 리 /apache-tomcat-8.5.16/bin
으로 전환 하고 실행:

./catalina.sh jpda start 
위의 명령 을 실행 하면 원 격 debug 를 열 수 있 습 니 다.포트 번호 같은 정 보 를 설정 하려 면 아래 의 설명 을 참고 하 십시오.
매개 변수 설명

#  JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
#          command is executed. The default is "dt_socket".
#
#  JPDA_ADDRESS  (Optional) Java runtime options used when the "jpda start"
#          command is executed. The default is localhost:8000.
#
#  JPDA_SUSPEND  (Optional) Java runtime options used when the "jpda start"
#          command is executed. Specifies whether JVM should suspend
#          execution immediately after startup. Default is "n".
#
#  JPDA_OPTS    (Optional) Java runtime options used when the "jpda start"
#          command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
#          and JPDA_SUSPEND are ignored. Thus, all required jpda
#          options MUST be specified. The default is:
#
#          -agentlib:jdwp=transport=$JPDA_TRANSPORT,
#            address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
조작설명
따라서 설정 을 수정 하려 면 다음 과 같이 하 십시오.
catalina.sh 에서 설정:

JPDA_TRANSPORT=dt_socket 
JPDA_ADDRESS=5005 
JPAD_SUSPEND=n 
혹은 JPDA 를 통 해OPTS 설정:

JPDA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
springboot 원 격 디 버 깅 시작
원 격 디 버 깅 maven 설정
The run goal forks a process for the boot application. It is possible to specify jvm arguments to that forked process. The following configuration suspend the process until a debugger has joined on port 5005

<project>
 ...
 <build>
  ...
  <plugins>
   ...
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.1.12.RELEASE</version>
    <configuration>
     <jvmArguments>
      -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
     </jvmArguments>
    </configuration>
    ...
   </plugin>
   ...
  </plugins>
  ...
 </build>
 ...
</project>
These arguments can be specified on the command line as well, make sure to wrap that properly, that is:

mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
jar 명령 원 격 디 버 깅 시작
jar 를 실행 할 때 인 자 를 추가 합 니 다.다음 과 같다.

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar demo.jar
자바 디 버 깅 에 대해 깊이 알 고 싶다 면 이것 을 보 세 요.자바 디 버 깅 시스템 깊이 들 어가 기
문제.Connection refused 이 나 오 면
우선 포트 8000 의 사용 상황 을 확인 하 세 요.

use:~/tomcat/logs # netstat -an|grep 8000
cp    0   0 127.0.0.1:8000     0.0.0.0:*        LISTEN
현재 16808 포트 서비스 가 루프 주소 로 연결 되 어 있어 외부 에 접근 할 수 없습니다.로 컬 디 버 깅 입 니 다.
방법:
catalina.sh 의 인 자 를 수정 합 니 다.

if [ -z "$JPDA_TRANSPORT" ]; then
  JPDA_TRANSPORT="dt_socket"
 fi
 if [ -z "$JPDA_ADDRESS" ]; then
  JPDA_ADDRESS="0.0.0.0:8000"
 fi
 if [ -z "$JPDA_SUSPEND" ]; then
  JPDA_SUSPEND="n"
 fi
JPDA_ADDRESS="localhost:8000" 에 대해 기본 값(localhost:8000)을 0.0.0.0:8000 으로 바 꿉 니 다.기본 값 은 로 컬 ip 디 버 깅,즉 원 격 디 버 깅 이 불가능 합 니 다.0.0.0.0 은 모든 ip 주 소 를 디 버 깅 할 수 있 음 을 표시 합 니 다.
원 격 연결 후 포트 상황 보기:

root@VM-198-217-ubuntu:/opt/apache-tomcat-8.5.16/bin# netstat -an | grep 8000
tcp    0   0 10.133.198.217:8000   60.177.99.27:49998   ESTABLISHED
끊 긴 후 에는 다음 과 같 습 니 다.

root@VM-198-217-ubuntu:/opt/apache-tomcat-8.5.16/bin# netstat -an | grep 8000
tcp    0   0 0.0.0.0:8000      0.0.0.0:*        LISTEN
tcp    0   0 10.133.198.217:8000   60.177.99.27:49998   TIME_WAIT
아이디어 원 격 포트 연결 원 격 디버그
나 는 이미 서버 에서 원 격 디 버 깅,아이디어 연결 절 차 를 열 어 그림 을 직접 올 렸 다.
edit configurations
edit configurations
원 격 디 버 깅 설정
远程调试配置
매개 변수 설정
参数配置
빨 간 상자 안의 주소 와 포트 번 호 를 자신의 것 으로 바 꿉 니 다.
参数配置
원 격 디 버 깅 시작
启动远程调试
성공 인터페이스
成功界面
부탁 해 봐.
试试
디 버 깅 의 자 세 는 로 컬 디 버 깅 과 마찬가지 로 만 들 기 시작 합 시다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기