這是我的客戶端代碼,通過RPC調用獲取字符串「get-image-data」並從服務器獲取byte[]
。帶序列化的GWT
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 []應該是可序列化的,但我會檢查。 – RockyMM
字節[]是絕對可序列化的。 http://developerlife.com/tutorials/?p=131檢查你的瀏覽器是否緩存了舊編譯的JS。做一個Ctrl-F5刷新緩存,它可能工作。 – RockyMM