【发布时间】:2016-06-09 13:15:24
【问题描述】:
这是我的客户端代码,用于通过 RPC 调用获取字符串“get-image-data”并从服务器获取byte[]。
CommandMessage msg = new CommandMessage(itemId, "get-image-data");
cmain.ivClient.execute(msg, new AsyncCallback<ResponseMessage>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(ResponseMessage result) {
if (result.result) {
result.data is byte[].
}
}
});
从服务器端我得到的数据长度是 241336。
但我无法在onSuccess 方法中获得值。它总是使用onFailure 方法。
我登录了 Apache:
com.google.gwt.user.client.rpc.SerializationException: 类型“[B”是 不包含在可以由此序列化的类型集中 无法加载 SerializationPolicy 或其 Class 对象。
如何在 GWT 中进行序列化?
【问题讨论】:
-
ResponseMessage长什么样子?该错误表示 byte[] cant 通过网络发送,在您的情况下,服务器表示不允许它发送该数据。 -
您使用的是什么版本的 GWT?我的直觉告诉我 byte[] 应该是可序列化的,但我会检查一下。
-
byte[] 绝对是可序列化的。 developerlife.com/tutorials/?p=131 检查您的浏览器是否缓存了旧编译的 JS。执行 Ctrl-F5 刷新缓存,它可能会起作用。
-
它可能可序列化,但前提是 rpc 服务已声明它是允许服务器发送的东西。
标签: serialization gwt