2011-10-18 8 views
6

GWTクライアント側からサーバーの例外をログに記録する一般的なメカニズムを実装しました。 当然のことながら、それらのいくつかは、予想外の例外は、(NPEなど)であるため、我々は(抜粋)私たちのログにこれらのスタックトレースの種類を取得している:私はクラスと行数のを見つけることができますどのようにjavacriptスタックトレースからJavaの実際のスタックトレースを見つける

 
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) 

元のJavaソース?

正確なシナリオに関する情報がなく、例外を再現できないため、詳細なコンパイル済みのバージョンを展開したくありません。

+0

これは、モジュールごとにロガーをサブクラス化し、明示的に場所を設定する必要があるということですか? –

答えて

6

GWTコンパイラは、(-warWEB-INF/deploy、及び-extraから-deployデフォルト値は、デフォルトでは出射されない)-deploy-extra場所にsymbolMapファイルにマッピングして出力します。
を手入力でとし、奇妙なことを時々デバッグします。

また、StackTraceDeobfuscatorを使用して、プログラムでトレースを解消することもできます。
FYIこのクラスは、RemoteLoggingServiceImpl GWT-RPCサーブレットとLogging RequestFactoryサービスで使用されます。それぞれがSimpleRemoteLogHandlerRequestFactoryLogHandlerによって呼び出されます(GWTがサポートするlogging APIで使用できるjava.util.logging.LogHandlerです)。この場合、webappのWEB-INF/deployが表示されます(そのため、-deployにデフォルト値が設定されています)。

+2

私は次のようにしました: 1. module xmlファイルにを追加しました。 –

+3

2. RemoteLoggingServiceImplをオーバーライドし、setSymbolMapsDirectory( "WEB-INF/deploy/{Modulename}/symbolMaps /")を呼び出します。 –

+0

ドキュメントにありましたが、-extraオプションを追加する必要はありませんでした。少なくとも、私はそれを追加しても何の違いも見られませんでした。 –

関連する問題