【发布时间】:2014-05-15 06:09:34
【问题描述】:
我有一个奇怪的问题(希望您能提供帮助):我正在开发一个 GWT Web 应用程序,该应用程序有时会同时进行超过 4 到 5 个 GWT RPC 调用 - 就时间而言。
每隔一段时间 - 也许每 15 次调用一次?一个调用的返回对象被“分配”给另一个。我通过在客户端使用 gwt-log 库证明了这一点。
这里是 HistoryChangesCount 调用的返回对象,也被分配给了modelingGetTemplates 调用。
因此导致调用的客户端文件中的 ClassCastException 与 onSuccess 方法位于同一行。
你有什么建议可以避免这种情况吗?
PS - 我在错误级别记录每个响应 object.toString()。我知道这不是最佳做法。仅用于故障排除。
[14:38:01.026] "(-:-) 2014-04-03 14:38:01,025 [ERROR] getHistoryChangesCount - HistoryPreviewFacet - SUCCESS RETURNED: HistoryChangesCount{dateToNumberOfChangesMap={Mon Mar 31 03:00:00 GMT+300 2014=3}, lastUpdatedOn=Mon Mar 31 11:11:02 GMT+300 2014}
"
[14:38:01.163] "(-:-) 2014-04-03 14:38:01,162 [ERROR] modelingGetTemplates - ModelingTemplatesDropdown - SUCCESS RETURNED: HistoryChangesCount{dateToNumberOfChangesMap={Mon Mar 31 03:00:00 GMT+300 2014=3}, lastUpdatedOn=Mon Mar 31 11:11:02 GMT+300 2014}
"
[14:38:01.175] "(-:-) 2014-04-03 14:38:01,174 [ERROR] Browser: null
java.lang.ClassCastException
at Unknown.iCb(StackTraceCreator.java:174)
at Unknown.sd(StackTraceCreator.java:508)
at Unknown.Txn(Throwable.java:46)
at Unknown.kIc(Cast.java:46)
at Unknown.rff(ModelingTemplatesDropdown.java:79)
at Unknown.bXi(AsyncWrapperForRPCManager.java:38)
at Unknown.Loe(RequestCallbackAdapter.java:232)
at Unknown.MWb(Request.java:258)
at Unknown.qXb(RequestBuilder.java:412)
at Unknown.anonymous(XMLHttpRequest.java:351)
at Unknown.eBb(Impl.java:189)
at Unknown.hBb(Impl.java:242)
at Unknown.anonymous(Impl.java:70)
"
以下是成功调用modelingGetTemplates 的样子:
[14:37:24.933] "(-:-) 2014-04-03 14:37:24,932 [ERROR] modelingGetTemplates - ModelingTemplatesDropdown - SUCCESS RETURNED: [Advanced Business Application, Advanced Business Transaction, TestTemplate]
"
我正在使用普通 GWT-RPC。我只有一个扩展 AsyncWrapper 以进行日志记录的类。我还为自己创建了一个客户端队列,将并行调用的数量限制为 4,但即便如此它仍然会发生。
版本: 总重量:2.5.1 我也使用 Sencha GXT,不确定是否相关。
最终结果是我的小部件一直卡在加载等待数据。当然还有愤怒的用户:)
【问题讨论】:
-
能否包含两个方法签名以及记录响应对象的代码?
-
您不能进行一次调用(或更少调用)来返回您需要的对象吗?
-
我想这可能是永久解决方案的一部分......但是我不再从事这个项目了。我确实找到了另一种(不太明显)的方法来解决它 99% 的时间。我会写一个关于我是如何做到的答案。