私のアプリケーションでは、サーバーにあるファイルからデータを取得しています。データはテキストファイル(.obj)に格納されているので、ファイルを読み込んでデータを取得するためにrpcを使用しています。ファイルはサードパーティのライブラリを使って読み込まれますhttp://www.pixelnerve.com/processing/libraries/objimport/ ArrayListを使ってクライアントにデータを送りますが、基本的には次のようにします:ArrayList [ArrayList [Vertex3dDTO]] Vertex3dDTOは浮動小数点数を含む直列化可能オブジェクトです。 ArrayList [Vertex3dDTO]は別の直列化可能クラスFace3dDTOに含まれ、ArrayList [Face3dDTO]は直列化可能クラスGroup3dDTOに含まれます。ArrayList GWTの逆シリアル化
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]
他の質問もチェックされていますが、問題はデシリアライゼーションに関するものですが、具体的なものは見つかりませんでした。
問題は、アプリケーションをホストモードで正常に動作させるにはどうすればよいですか?成功したRPCを使用するには
「Vertex3dはシリアライザブルです」というのは、java.io.Serializableを実装しているということですか?その構造は正確に何ですか? –
これは変です...あなたはVertex3DインスタンスでArrayListを送信していますか? GWTが何かをシリアル化できない場合、GWTは何かをシリアル化します。 – Luismahou
私は質問にコードの一部を追加したので、クラスの仕組みを見ることができます。 – sosegon12