Javascript GWT生产崩溃
我正在开发一个GWT-GAE Java交易应用程序,客户在服务器上下订单,然后服务器(通过AppEngine频道)通知客户更新。我的问题是,我遇到了不定期的客户崩溃-在5~10分钟的交易后,客户可能会崩溃(在Chrome中,我看到这个页面:chrome://crash/). 我在生产中测试了这一点,最多有10名交易员(在不同的机器上)同时交易30分钟,我通常会遇到4或5名独立客户崩溃。由于联系减少,或者交易活动减少,我看不到崩溃 我认为问题可能是ConcurrentModificationException,所以我尝试了1)对Scheduler.get().scheduleDeferred使用延迟命令,以及2)实现消息队列,但这两种方法似乎都没有帮助 我的问题是-如何调试它?在开发中,在出现内存错误之前,我可以同时建立的连接数量有限(2或3个),因此我无法复制我的问题。有没有一种方法可以查看生产中引发的导致这些崩溃的异常类型 我看了一下-我能在服务器上记录选项卡崩溃吗 谢谢 更新 我已经设置了gwt日志,但当我重现我的客户端崩溃时,它似乎没有记录它。它会记录各种其他信息,但在客户端崩溃时不会出错。在客户端上,我有一个围绕通道消息的尝试捕获:Javascript GWT生产崩溃,javascript,debugging,gwt,Javascript,Debugging,Gwt,我正在开发一个GWT-GAE Java交易应用程序,客户在服务器上下订单,然后服务器(通过AppEngine频道)通知客户更新。我的问题是,我遇到了不定期的客户崩溃-在5~10分钟的交易后,客户可能会崩溃(在Chrome中,我看到这个页面:chrome://crash/). 我在生产中测试了这一点,最多有10名交易员(在不同的机器上)同时交易30分钟,我通常会遇到4或5名独立客户崩溃。由于联系减少,或者交易活动减少,我看不到崩溃 我认为问题可能是ConcurrentModificationExc
try {
SerializationStreamReader reader = ((SerializationStreamFactory)rpcService).createStreamReader(encodedData);
Message message = (Message) reader.readObject();
Log.info(name + ": " + message.toString());
processMessage(message);
} catch (Exception e) {
Log.fatal(name + ": error encoding " + encodedData);
}
当客户端崩溃时,我应该在服务器日志中看到什么吗?是的,您可以使用
还有
这给了你更多的选择,比如
- 自定义url
- 格式化
--------------编辑--------------
你试过UncaughtExceptionHandler吗
//安装一个UncaughtExceptionHandler,它将生成
日志消息致命的
Log.setUncaughtExceptionHandler();
开发模式
大型应用程序或使用大量jsni的应用程序很快就会出现内存和性能问题。这是因为开发模式的架构需要IDE和浏览器插件之间复杂的通信过程,以及JVM和JS之间频繁的执行上下文切换
要调试复杂的东西,最好使用,它将只在浏览器中执行javascript,并提供一种很好的方法()在浏览器中调试应用程序,但使用java源代码
请注意,超级开发模式的设置有点复杂,特别是当您需要与后端通信时,重新加载过程有点慢,并且请注意您将错过IDEJava调试控制台。但是值得一试。如何调试:dev模式还是superdev模式?我想是dev模式(我的项目使用默认的Google插件进行Eclipse设置)。谢谢,我现在正在测试它。在我完全测试后将再次更新。gwt-log似乎无法捕获浏览器选项卡崩溃-它将其他类型的消息记录到服务器,但当选项卡崩溃时,我看不到任何东西(在服务器日志中)。请尝试,谢谢,我也会看一看。