이클립스를 사용한 Tomcat 원격 디버깅
이클립스를 통해 톰캣 애플리케이션을 디버그할 수 없는 것 같습니다.설정했습니다.
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
그리고 나는 달립니다.bin/catalina.sh수신 중이라는 출력이 표시됩니다.dt_socketport 8000 포트에 하려고 할 마다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ8000Eclipse에서는 (원격 Java 애플리케이션 메뉴에 항목을 추가하여) 연결이 거부되었다고 불평합니다.아이디어 있어요?
이것이 작동하는지 확인해 주시겠습니까?
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
catalina.sh jpda start
저는 정확한 정보를 얻기 위해 이것에 시간을 보냈습니다.
그래서 여기에 단계별로 상세한 정보가 있습니다.
환경: Windows 7
TomCat 버전: 7.0
IDE: 이클립스
Tomcat을 사용하여 원격 디버깅을 활성화하기 위해 추가할 구성은 다음과 같습니다.
-Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
윈도우즈가 아닌 환경에서는 위의 구성을 권장하지 않습니다.위의 구성을 추가하려면 서버 보기에서 사용할 수 있는 Tomcat 서버를 두 번 클릭합니다.아래 스크린샷을 찾습니다. 
이제 위의 런타임 환경 구성을 Tomcat에 추가합니다.아래 스크린샷에서 확인할 수 있습니다.

이제 아래 스크린샷에 표시된 것처럼 시작 구성 속성 편집의 인수 탭으로 이동합니다.

VM으로 이동 인수 섹션에서 이 행을 추가합니다.
-X디버그
-agentlib:jdwp=sys=dt_sys, 주소=8000, 서버=y, syslog=n

이제 eclipse 도구 모음에서 사용할 수 있는 디버그 단추가 있습니다.

디버그 구성에서 "원격 Java 응용프로그램"을 찾아 두 번 클릭합니다.
이름 필드에 원하는 이름을 입력합니다.
찾아보기 버튼을 사용하여 프로젝트 필드에서 원격 디버그를 수행할 프로젝트를 선택합니다.
호스트 이름은 호스트 주소에 불과합니다.여기서 저는 로컬에서 일하고 있기 때문에 "localhost"입니다.
마지막 포트 열 값은 8000이어야 합니다.이름 및 프로젝트 텍스트 필드를 제외하고 다른 두 열 호스트 및 포트는 언급된 것과 동일한 값을 갖도록 하지 않으면 일식 자체로 채워집니다.자세한 내용은 스크린샷을 확인하십시오.
이제 서버 콘솔에서 TomcatServer를 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 추가 및 제거를 선택합니다.이 대화 상자에서 프로젝트를 서버에 추가할 수 있습니다.
이제 Tomcat 서버를 실행합니다.

이제 디버그 도구에서 TomCatDebugConfiguration을 실행합니다.
마지막으로 내부 또는 외부 브라우저를 열고 프로젝트를 실행합니다.실행 제어가 중단점에 도달하면 이클립스는 디버그 관점을 묻는 메시지를 표시합니다.
에서 Tomcat bin은 과 같습니다.catalina.bat또는.sh검색됨({CATALINA_BASE}/bin이라고도 함), 편집(없는 경우 생성
setenv.bat/.sh
다음 행을 추가합니다.
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
▁the▁▁that이작됩다니t▁need▁를 편집할 필요는 없습니다. 편집할 필요는 없습니다.catalina.bat(또는).sh) 파일.
의설을의 하세요.catalina.bat또는catalina.sh.
특정 환경/상황에 맞게 구문을 조정해야 할 수도 있습니다.예를 들어 이미 CATALINA_OPTS를 정의한 경우 윈도우즈 환경에서 다음과 같은 작업을 수행할 수 있습니다.
set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,server=y,suspend=n
Eclipse에서 디버그하기
실행 ->디버그 구성...->원격 Java 애플리케이션->새로 만들기
이름, 디버깅 중인 프로젝트, 위에서 지정한 Tomcat 호스트 및 디버그 포트를 지정합니다.
catalina.bat파일은 아래와 같이 수정 부탁드립니다.
1단계:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"2단계:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"합니다. 3단계: Tomcat을 실행합니다.
catalina.sh jpda start4단계: 그런 다음 이클립스에서 디버그 구성을 만듭니다.
- 구성에 대한 이름을 지정합니다.
- 를 .
project name. - 을 " 결유형을다같지이정다니합음과연다"로 합니다.
Standard(Socket Attach) - 로서 사회를 보다.
localhost - 를 함표현으로 합니다.
8000(또는 임의의 포트 번호이지만 다른 위치에서도 동일해야 합니다.)
위의 답변 중 많은 부분이 옳지만 기본적으로 디버거는 localhost에서 수신합니다. 즉, 디버깅 클라이언트(예: IDE)를 동일한 컴퓨터에서 실행하는 경우에만 디버그할 수 있습니다.
원격 서버를 디버깅하는 경우 수신 대기할 서버의 올바른 IP 주소를 지정해야 합니다.
JPDA_OPTS="-agentlib:jdwp=ipsec=dt_socket, 주소=10.1.1.33:8000, 서버=y, 일시 중단=n"
카탈리나shjpda 시작
현재 주소는 10.1.1.33:8000입니다.
물론, 실제로 어떤 IP가 사용되고 있는지 확인할 수도 있습니다.
netstat -an
할 수 . 포트를 "" "" "" "" "" "로 만 하면 됩니다. 포트를 필터링하려면find (Windows) 는grep(Linux).
그냥 도망가./catalina.sh jpda start 또는 (으)ㄴ./catalina.sh jpda run(포킹하지 않음, 도움말에 언급되지 않음).여기에 언급된 모든 옵션은 기본적으로 정상 값으로 설정됩니다.
Tomcat7에서 원격 디버깅 모드를 활성화하는 간단한 방법을 eclipse(Windows)와 공유하겠습니다.
bin/ file1 파일: bin/startup.bat 파일
함)으로 디버깅하기 합니다. 2단계: JDPA 파일의 시작 줄입니다.
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
3단계: 동일한 파일에서 .파일 끝으로 이동하여 이 줄을 수정합니다.
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
instead of line
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
4단계: 그런 다음 bin>syslog.bat만 실행합니다(그래서 이제 Tomcat 서버는 포트 8000으로 원격 모드로 실행되었습니다).
5단계: 그런 다음 Eclipse IDE로 원격 클라이언트와 소스 프로젝트를 연결합니다.
6단계: Eclipse IDE에서 "디버그 구성"으로 이동합니다.
7단계: "원격 Java 애플리케이션"을 클릭하고 "새로 만들기"를 클릭합니다.
8단계. "연결" 탭에서 매개변수 값 설정
project= your source project
connection Type: standard (socket attached)
host: localhost
port:8000
9단계: 적용 및 디버그를 클릭합니다.
마지막으로 이클립스 원격 클라이언트가 실행 중인 Tomcat 서버에 연결됩니다(슬립스 모드).
이 접근 방식이 도움이 되기를 바랍니다.
잘 부탁드립니다.
추가할 catalina.bat 수정
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
그리고.
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
선택 사항:시작할 때 기본적으로 디버그 모드를 실행하려면 아래 줄을 추가하십시오.박쥐
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
Eclipse 또는 STS 디버그 구성 선택 오른쪽 클릭 -> new
connection type -> Standard socket Attach
Port -> 8000 (as given in the CATALINA_OPTS)
Host -> localhost or IP address
그래도 위의 모든 것이 작동하지 않으면 언제든지 스크립트에 추가할 수 있습니다.
set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Tomcat 7, 카탈리나.sh는 다음 코드를 가지고 있습니다.
if [ "$1" = "jpda" ] ; then
if [ -z "$JPDA_TRANSPORT" ]; then
JPDA_TRANSPORT="dt_socket"
fi
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="8000"
fi
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="n"
fi
if [ -z "$JPDA_OPTS" ]; then
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
fi
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
shift
fi
II는 다음을 사용하여 JPDA를 설정할 수 있음을 의미합니다.
export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=8000
export JPDA_SUSPEND=n
또는 다음과 함께:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
마지막으로 다음을 사용합니다.
catalina.sh jpda start
안부 전해요
apache-tomcat-8.5.28 버전의 경우 이렇게 하십시오.
catalina.bat jpda start
catalina.batas에서 이미 구성된 기본 설정으로
%J가 아니라면PDA_OPTS%" == "got to gotJpdaOpts set JPDA_OPTS=-agentlib:jdwp=filename=%JPDA_TRANSPORT, 주소=%JPDA_ADDRESS, 서버=y, 일시 중단=%JPDA_SUSPENET%
따라서 다른 구성이 필요하지 않습니다.그리고 당신이 catalina 명령을 실행할 때.bat jpda start, 디버그 포트 8000이 열려 있는 것을 볼 수 있습니다.
저는 도커 컨테이너 안에서 Tomcat을 실행하는 동안 이 문제를 해결했습니다.이 문제를 해결하려면 docker run 명령에 '-p 8000:8000' 인수를 추가하여 이 포트를 로컬 컴퓨터에 노출해야 합니다.물론 ${CATA}에 setenv.sh 파일이 필요합니다.LINA_HOME}/bin/도 컨테이너 내에 있습니다.
카탈리나_OPTS와 JPDA_OPTS를 사용하여 startup.bat를 수정하는 것은 나에게 효과가 없었지만 그것들을 카탈리나.bat에 추가하는 것은 효과가 있었습니다.
- 카탈리나를 수정합니다.박쥐
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket, 주소=8000, server=y, suspend=n"
JPDA_OPTS="-agentlib:jdwp=dt=dt_socket, 주소=8000, 서버=y, 일시 중단=n"
- jpda를 포함하도록 startup.bat을 수정합니다.
%EXECUTABLE% 호출을 %CMD_LINE_ARGS% 시작으로 변경
%EXECUTABLE%" jpda 시작 %CMD_LINE_ARGS% 호출
그런 다음 Eclipse의 디버그 구성에서 원격 Java 애플리케이션을 구성합니다.
먼저 텍스트 편집기로 catalina.bat을 열면 "이 스크립트에서 변수를 설정하지 마십시오..."라는 메시지가 표시됩니다. 따라서 해당 스크립트에서 변수를 변경하지 마십시오. 대신 다음 단계를 수행할 수 있습니다.
- 이름이 "setenv.bat"인 새 bat 파일을 생성하는 것이 좋습니다.
그런 다음 해당 bat 파일에 다음과 같은 변수 2개를 설정합니다.
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket, 주소=8000, 서버=y, suspend=n"을 설정합니다.
set JPDA_OPTS="-agentlib:jdwp=dt=dt_socket, 주소=8000, 서버=y, 일시 중단=n"
마지막으로 cmd에서 "catalina"를 실행합니다.bat jpda start"
IDE에서 원격 디버그 구성을 만들고 호스트를 관련 서버 ip로 설정하고 포트를 8000으로 설정합니다.
Java 8 및 Tomcat 9에서 발생한 문제: Tomcat 9에서 Java 원격 디버깅(JPDA)이 작동하지 않습니다.
이는 @DAB의 경고와 유사하며, 그의 솔루션이 더 안전할 가능성이 높습니다.
apache-tomcat-8.5.28의 경우
수정하다, 수정하다, 수정하다, 수정하다, 수정하다, 수정하다JDPA_OPTS아래와 같이 달리면 다음과 같이 달립니다.catalina.bat jpda start
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=8000,server=y,suspend=$JPDA_SUSPEND"
언급URL : https://stackoverflow.com/questions/3835612/remote-debugging-tomcat-with-eclipse
'programing' 카테고리의 다른 글
| C# 데이터 테이블로 SQL 테이블 읽기 (0) | 2023.04.27 |
|---|---|
| 셀 값에서 이스케이프 따옴표 또는 아포스트로피를 사용합니다. (0) | 2023.04.27 |
| 반복기, 목록 보기, 데이터 목록, 데이터 그리드, 그리드 보기...어떤 걸 고를까요? (0) | 2023.04.27 |
| 선택한 데이터 바인딩WPF 트리 보기의 항목 (0) | 2023.04.27 |
| Azure의 무료 SQL Server (0) | 2023.04.27 |