2012-01-25 2 views
1

Eclipse (디버그 용 : jpda)를 시작하고 Tomcat을 프로그램으로 중지 할 수 있도록 Eclipse를 구성했습니다. 내가 처음/종료 Tomcat 일식에서 성공하면 처음. 그러나 나는 다음과 같은 오류가 바람둥이 시작하려고 두 번째 : 나는 일식에서 종료 바람둥이을 실행하면 포트가 폐쇄되지 않습니다 생각Eclipse 내에서 외부 도구로 tomcat을 시작할 수 없습니다.

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) 
ERROR: transport error 202: bind failed: Address already in use 
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) 
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690] 

합니다. 컴퓨터를 다시 시작하면 포트가 해제되고 Eclipse에서 Eclipse 시작을 다시 실행할 수 있습니다. 하지만 때마다 그것을 작동하도록 컴퓨터를 다시 시작할 수 없습니다 ... 덜 급진적 인 해결책을 찾고 ...

이것은 어떻게 내가 프로그램으로 바람둥이를 실행 내 일식을 구성합니다.

Configured the external tool configuration in eclipse 
catalina script points to catalina.bat on my Windows machine 
under arguments : jpda run 
In the Environment tab. 
"JPDA_ADDRESS" as the name and "8000" as the value 
"JPDA_TRANSPORT" as the name and "dt_socket" as the value 
"JAVA_OPTS" as the name and -server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=160m -Djava.awt.headless=true as the value 

답변

1

Eclipse의 작동 방식에 대해서는 잘 모르겠지만 Tomcat을 중지하고 시작할 때 모두 동일한 JPDA 포트로 바인딩하려고합니다. Tomcat을 시작하면 분명히 괜찮지 만 중지하려고 시도하면 포트가 이미 사용 중이므로 중지 할 수 없습니다.

는이 문제를 해결하는 방법에는 여러 가지가 있으며, 이들은 사람이 개인적으로 사용됩니다

1) 시작/외부 Tomcat을 중지합니다. tomcat/bin/catalina.sh jpda start, tomcat/bin/catalina.sh stop은 변경없이 즉시 사용할 수 있습니다. 아마 Eclipse에서 외부 스크립트를 시작할 수 있습니까?

2) Tomcat을 Eclipse의 간단한 Java 프로그램으로 시작/중지하십시오. 이 방법을 사용하면 프로그램이 다른 Java 프로그램처럼 디버그 가능하므로 원격 디버깅이 필요하지 않습니다. 내 인 IntelliJ의 설정은 다음과 같습니다

메인 클래스 :org.apache.catalina.startup.Bootstrap

VM 매개 변수 :-ea -cp $CLASSPATH:/path/to/tomcat/bin/bootstrap.jar -Dcatalina.base="/path/to/tomcat" -Dcatalina.home="/path/to/tomcat" -Djava.io.tmpdir="/path/to/tomcat/temp" -noverify -Xmx400M -XX:MaxPermSize=400M

프로그램 매개 변수 :start

작업 디렉토리 :/path/to/tomcat

그런 다음 자바 프로세스를 죽이거나 단순히 프로그램 매개 변수로 stop과 비슷한 환경을 만들면 Tomcat을 중지 할 수 있습니다. 정상적으로 종료됩니다. catalina.sh을 보면이 모든 스크립트는 실제로 모든 매개 변수를 준비하고 Tomcat을 같은 방식으로 시작합니다.

관련 문제