2011-10-18 3 views
6

우리는 GWT 클라이언트 측에서 서버 예외를 기록하는 일반적인 메커니즘을 구현했습니다. 물론, 그들 중 일부는 예기치 않은 예외 (예 : NPE와 같은)이며, 따라서 우리는 (발췌) 우리의 로그에 이러한 스택 추적의 종류를 얻고있다 : 나는 클래스와 라인 번호를 찾을 수있는 방법자바 스크립트 스택 추적에서 자바 실제 스택 추적 찾기

 
java.lang.Throwable: One or more exceptions caught, see full set in UmbrellaException#getCauses 
     at Unknown.Hq(Unknown Source) 
     at Unknown.ihb(Unknown Source) 
     at Unknown.anonymous(Unknown Source) 
     at Unknown.anonymous(Unknown Source) 
     at Unknown.anonymous(Unknown Source) 
Caused by: java.lang.Throwable: (TypeError): d is null 
stack: EG([object Object],[object Object])@http://domain/path/0B15791BA99231E6B88EAF3BDE38EB64.cache.html:3282 

fileName: http://domain/path/0B15791BA99231E6B88EAF3BDE38EB64.cache.html 
lineNumber: 3282 
     at Unknown.EG(Unknown Source) 
     at Unknown.DG(Unknown Source) 

원래 자바 소스?

정확한 시나리오에 대한 정보가 없으므로 예외를 재현 할 수 없기 때문에 자세한 컴파일 된 버전을 배포하고 싶지 않습니다.

+0

그렇다면 모든 모듈에 대해 로거를 서브 클래스 화하고 위치를 명시 적으로 설정해야한다는 의미입니까? –

답변

6

GWT 컴파일러는 -deploy-extra 위치에 symbolMap 파일의 매핑을 출력한다 (곳에 -deploy을 기본값 -warWEB-INF/deploy-extra 기본적으로 방출되지 않는다).
수시로 이상한 것을 디버그하려면을 수동으로 사용합니다.

또한 StackTraceDeobfuscator을 사용하여 프로그래밍 방식으로 추적을 해제 할 수 있습니다.
FYI,이 클래스는 RemoteLoggingServiceImpl GWT-RPC 서블릿과 Logging RequestFactory 서비스에서 사용됩니다. 각각 SimpleRemoteLogHandlerRequestFactoryLogHandler에 의해 호출됩니다 (GWT가 지원하는 logging API과 함께 사용할 수있는 java.util.logging.LogHandler입니다). 이 경우, webapp의 WEB-INF/deploy을 조사합니다 (이것이 -deploy의 기본값 임).

+2

다음을 수행했습니다. 1. 모듈 xml 파일에 가 추가되었습니다. –

+3

2. RemoteLoggingServiceImpl을 무시하고 setSymbolMapsDirectory ("WEB-INF/deploy/{Modulename}/symbolMaps /")를 호출하십시오. –

+0

설명서에 있지만 -extra 옵션을 추가하지 않아도되었습니다. 적어도, 내가 추가했을 때 나는 어떤 차이도 보지 못했다. –