【发布时间】:2010-04-19 13:22:30
【问题描述】:
我有一个 GWT 可序列化类,我们称之为 Foo。 Foo 实现 IsSerializable,具有原始成员和可序列化成员以及其他瞬态成员和无参数构造函数。
class Foo implements IsSerializable {
// transient members
// primitive members
public Foo() {}
public void bar() {}
}
也是一个在 RPC 通信中使用 Foo 实例的服务。
// server code
public interface MyServiceImpl {
public void doStuff(Foo foo);
}
public interface MyServiceAsync {
void doStuff(Foo foo, AsyncCallback<Void> async);
}
我如何使用它:
private MyServiceAsync myService = GWT.create(MyService.class);
Foo foo = new Foo();
...
AsyncCallback callback = new new AsyncCallback {...};
myService.doStuff(foo, callback);
上述情况下代码正在运行,回调实例的onSuccess()方法被执行。
但是当我像这样覆盖 foo 实例上的 bar() 方法时:
Foo foo = new Foo() {
public void bar() {
//do smthng different
}
};
AsyncCallback callback = new new AsyncCallback {...};
myService.doStuff(foo, callback);
我得到了 GWT SerializationException。
请赐教,因为我真的不明白为什么。
【问题讨论】:
-
常见,没有人试过这个?我不敢相信以前没有人有这个铅!
-
很明显,当客户端序列化要通过 RPC 发送的对象时会抛出错误。
标签: gwt-rpc overriding