【发布时间】:2011-09-22 04:08:22
【问题描述】:
在我的应用程序中,我从位于服务器中的文件中获取一些数据。数据存储在文本文件 (.obj) 中,因此我使用 rpc 来读取文件并获取数据。使用第三方库http://www.pixelnerve.com/processing/libraries/objimport/ 读取文件我使用ArrayLists 将数据发送到客户端,基本上我发送的是:ArrayList[ArrayList[Vertex3dDTO]] 其中Vertex3dDTO 是一个包含浮点参数的可序列化对象。 ArrayList[Vertex3dDTO]包含在另一个可序列化类Face3dDTO中,ArrayList[Face3dDTO]在可序列化类Group3dDTO中。
package com.nyquicksale.tailorapp.shared;
import java.io.Serializable;
public class Vertex3dDTO implements Serializable {
float x,y,z;
public Vertex3dDTO(){
}
public Vertex3dDTO(float x, float y, float z){
this.x = x;
this.y = y;
this.z = z;
}
}
public class Face3dDTO implements Serializable {
ArrayList<Vertex3dDTO> vL = new ArrayList<Vertex3dDTO>();
Vertex3dDTO normal = new Vertex3dDTO();
Vertex3dDTO color = new Vertex3dDTO();
public Face3dDTO(){
}
public Face3dDTO(ArrayList<Vertex3dDTO> v) {
for(Vertex3dDTO v3dDTO : v){
vL.add(v3dDTO);
}
updateNormal();
}
public class Group3dDTO implements Serializable {
ArrayList<Face3dDTO> fL = new ArrayList<Face3dDTO>();
String name;
public Group3dDTO(){
}
public Group3dDTO(ArrayList<Face3dDTO> f) {
for(Face3dDTO f3dDTO : f){
fL.add(f3dDTO);
}
}
}
现在,一切都在开发模式下运行良好,但是当我在托管模式下测试应用程序时,我收到的所有响应都是: //OK[0,1, ["java.util.ArrayList/4159755760"], 0,7]
所以,我已经检查了一些其他问题,似乎问题与反序列化有关,但我没有发现任何具体的问题。
问题是我必须做些什么才能让应用在托管模式下正常运行?
【问题讨论】:
-
Vertex3d is an serializable是不是意味着它只是实现了java.io.Serializable?它的结构究竟是什么? -
这很奇怪...您确定要发送带有 Vertex3D 实例的 ArrayList 吗?如果 GWT 不能序列化某些东西,它会报错。
-
我已将部分代码添加到问题中,因此您可以查看类的情况。
标签: gwt arraylist rpc deserialization