从 GWT 2.4.0 升级到 2.5.0 后,只有许多(许多!)RPC 方法中的一种被破坏,我不知道为什么。这是发生的事情(和没有发生的事情):
- 程序获取异步服务对象并调用其方法。
- 由 GWT 代理对象生成的 Underyling 存在并被调用(不过我不知道它的内部结构)。
- 浏览器不会向服务器发送任何请求(至少 Google Chrome 中内置的开发人员工具不会显示类似的情况。另一方面......请参阅 5.)。
- 服务器上的实现永远不会被调用。
- 但是,如果我停止服务器,
AsyncCallback.onFailure(Throwable)
则会立即执行。
为了清楚起见,我将重复一遍:相同的代码在 GWT 2.4.0 上就像一个魅力,而其他方法(如果不是全部的话,其中大多数)即使在 2.5.0 上也能正常工作。
现在一些代码。不确定是否有必要,但是...
异步接口
public interface BrokenServiceAsync {
public void getData(int id, State state, AsyncCallback<Data> asyncCallback);
}
State 接口(方法参数)和它的唯一实现都在外部模块中声明(添加为 jar 包)。我虽然这可能是那个问题的情况,但其他方法也在使用这些类。并且没有编译时错误。
Data包含一个 String 和一个 ArrayList 对象子类 com.extjs.gxt.ui.client.data.BaseModelData。大多数其他方法使用类似的对象并且它有效。
有任何想法吗?谢谢!