2012-12-17 5 views
0

Tomcat 6을 디버깅하는 동안 Tomcat과 Eclipse에서 두 클래스가 다르다는 것을 발견했습니다. Tomcat에서의 전개는 NullPOinterException을 생성한다. Eclipse 소스는 그렇지 않다. 문제는 우리가 startup.sh으로 Tomcat을 시작하면 매번 오류가 발생한다는 것입니다. 만약 우리가 으로 시작하고 Eclipse에 연결하면,이 오류를 일으키는 특정 속성의 값을 변경하지 않기 때문에 AS LONG 오류가 발생합니다. 이 값을 변경 한 후에는 배포 폴더와 작업 디렉토리를 삭제하고 디버그 모드에서 다시 시작하더라도 오류가 사라집니다. 예외 없음. 하지만 startup.sh으로 다시 시작하면 오류가 다시 나타납니다.Eclipse Tomcat 원격 디버깅 : 어딘가에 캐시 된 Eclipse의 소스입니까?

내 질문은 Tomcat 또는 Eclipse가 원격 디버거를 사용하기 위해 Eclipse의 소스를 Eclipse 어딘가에 캐시하거나 저장합니까?

감사합니다.

답변

0

Eclipse (그리고 IDEA와 Netbeans와 같은 다른 사람들이 생각하기에) 애플리케이션을 디버깅 할 때 "저장시"서버의 실행 코드를 바꿉니다. 즉, Eclipse에서 클래스를 변경할 때 저장하면 서버에서 변경됩니다. 코드 대체라고도합니다. 나는 또한 tomcat이 catalina.out의 변경 사항을 기록한다고 믿는다.
그러나 서버를 다시 시작하면 이전에 배포 된 클래스를 가져 와서 Eclipse에서 변경하기 전에 클래스를 가져온다.

+0

오케이! 이것을 확인하려면 catalina.out을 확인해야합니다. 그러나 이것이'startup.sh' (오류 포함)로 시작한 다음'catalina jpda start'로 다시 시작하면 오류가 다시 사라진다는 것을 어떻게 설명 할 수 있습니까? 디버그 모드에서 처음 시작했을 때이 속성을 변경하기 전까지 오류가 있었음을 기억하십시오. – ASP

+0

tomcat에는 webapp 옆에 작업 디렉토리가 있다고 생각합니다. 디버그중인 업데이트 된 클래스는 "push"되어 있지만 startup.sh를 다시 시작하면 webapp에서 읽지 만 디버그은 여전히 ​​작업 디렉토리와 병합됩니다. – grekier

+0

죄송합니다. 확인할 수 없습니다. 작업 디렉토리의 al 하위 폴더를 삭제하고 webapps의 폴더도 삭제하면 디버그 모드에서 시작될 때 정상적으로 작동하지만 정상적으로 시작되지는 않습니다. 이것은 정말로 나를 귀찮게한다! :-) – ASP

관련 문제