从javascript堆栈跟踪中查找Java实际堆栈跟踪

时间:2011-10-18 08:32:07

标签: gwt

我们已经实现了一个从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)

如何在原始java源代码中找到类和行号?

我不想部署详细的编译版本,因为我没有关于确切场景的信息,我无法重现异常。

1 个答案:

答案 0 :(得分:6)

GWT编译器输出-deploy-extra位置中的symbolMap文件中的映射(其中-deploy默认为-war的{​​{1}},并且默认情况下不会发出WEB-INF/deploy。) 我使用手动来不时调试奇怪的东西。

您还可以使用StackTraceDeobfuscator以编程方式对跟踪进行反混淆处理 仅供参考,此类由RemoteLoggingServiceImpl GWT-RPC servlet和Logging RequestFactory服务使用;分别由SimpleRemoteLogHandlerRequestFactoryLogHandler调用(它们是-extra,您可以使用GWT支持的logging API。在这种情况下,它会查看webapp的java.util.logging.LogHandler(这就是WEB-INF/deploy默认为什么的原因。)