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

Gwt 从javascript堆栈跟踪中查找Java实际堆栈跟踪,gwt,Gwt,我们已经实现了一种通用机制,从GWT客户端记录服务器异常。 当然,其中一些是意外的异常(如NPE),因此我们在日志中得到了这些堆栈跟踪(摘录): java.lang.Throwable:捕获一个或多个异常,请参阅雨伞中的完整集异常#getCauses 在Unknown.Hq(未知源) 在未知。ihb(未知来源) 位于Unknown.anonymous(未知源) 位于Unknown.anonymous(未知源) 位于Unknown.anonymous(未知源) 原因:java.lang.Throw

我们已经实现了一种通用机制,从GWT客户端记录服务器异常。 当然,其中一些是意外的异常(如NPE),因此我们在日志中得到了这些堆栈跟踪(摘录):

java.lang.Throwable:捕获一个或多个异常,请参阅雨伞中的完整集异常#getCauses 在Unknown.Hq(未知源) 在未知。ihb(未知来源) 位于Unknown.anonymous(未知源) 位于Unknown.anonymous(未知源) 位于Unknown.anonymous(未知源) 原因:java.lang.Throwable:(TypeError):d为null 堆栈:例如([对象],[对象])@http://domain/path/0B15791BA99231E6B88EAF3BDE38EB64.cache.html:3282 文件名:http://domain/path/0B15791BA99231E6B88EAF3BDE38EB64.cache.html 行号:3282 例如(未知来源) 在Unknown.DG(未知源) 如何在原始java源代码中找到类和行号


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

GWT编译器在
-deploy
-extra
位置的symbolMap文件中输出映射(其中
-deploy
默认为
-war
WEB-INF/deploy
,默认情况下不发出
-extra

我经常手动使用它来调试奇怪的东西

您还可以通过编程方式使用来清除跟踪。

仅供参考,该类由GWT-RPC servlet和RequestFactory服务使用;分别由和调用(它们是
java.util.logging.LogHandler
s,您可以使用GWT支持的)。在这种情况下,它查看webapp的
WEB-INF/deploy
(这就是
-deploy
默认设置的原因).

我做了以下操作:1.在模块xml文件中添加。2.重写RemoteLoggingServiceImpl并调用setSymbolMapsDirectory(“WEB-INF/deploy/{Modulename}/symbolMaps/”)。虽然它在文档中,但不必添加-extra选项。至少,我在添加它时没有看到任何差异。现在日志堆栈跟踪显示java类名,仍然没有行号。我猜DeobFousator只是使用符号映射替换符号,但它找不到确切的行号。是的,它只在方法级别。最近添加了源映射,但尚未发布。请参阅。这是否意味着您需要为每个模块对记录器进行子类化,并显式设置位置? 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)