2011-05-30 75 views
1

我有一个方法返回可序列化对象的列表,我对此方法进行RPC调用,并且一切顺利,直到反序列化过程:我收到以下消息:“响应无法反序列化”GWT在RPC调用中反序列化泛型列表

注:这是我的GWT-RPC响应字符串:

// OK [0,2768,3,2,0,2764,3,2,0,2761,3,2,0,2754,3,2,0,2750 , 3,2,0,2610,3,2,0,2606,3,2,0,2603,3,2,0,2600,3,2,9,1 ["java.util.ArrayList/3821976829 "" myPackage.MyEntity/845101117 "," java.lang.Integer/3438268394 "], 0.7] 

DTO

public class MyEntity implements Serializable,IsSerializable 
{ 
    private static final long serialVersionUID = -9032157988566853424L; 

    public MyEntity() 
    { 
     super(); 
    } 

    private Integer _entityId; 


    private String _name; 

    public Integer getEntityId() 
    { 
     return _entityId; 
    } 

    public void setEntityId(Integer entityId) 
    { 
     this._entityId = entityId; 
    } 

    public String getName() 
    { 
     return _name; 
    } 

    public void setName(String _name) 
    { 
     this._name = _name; 
    } 

} 

接口

@RemoteServiceRelativePath("ContributorService.rpc") 
public interface ContributorService extends RemoteService 
{ 
    ArrayList<MyEntity> myMethod(Arg arg); 
} 

public interface ContributorServiceAsync 
    { 

     void myMethod(Arg arg, AsyncCallback<ArrayList<MyEntity>> callback); 

    } 

服务器实施:

@SuppressWarnings("serial") 
public class ContributorServiceImpl extends RemoteServiceServlet implements ContributorService 
{ 

    @Override 
    public ArrayList<MyEntity> myMethod(Arg arg) 
    { 
     ArrayList<MyEntity> myList = new ArrayList<MyEntity>(); 
MyEntity myEntity=new MyEntity(); 
     //code... 
myList .add(myEntity); 
     return myList; 
    } 
} 

感谢您的帮助

+0

我从来没有见过实现Serializable,IsSerializable类之前,通常只有一个就足够了。我使用Serializable,并且始终适用于我。 – 2011-05-30 13:49:34

+0

我只使用了序列化,但它没有工作。 – user405458 2011-05-30 13:52:51

+0

我认为我的问题是与列表,因为当我编辑方法返回一个对象而不是列表一切工作正常。 – user405458 2011-05-30 14:01:50

回答

1

谢谢大家的帮助 这是一个愚蠢的错误,我仍然无法理解。 我改变了GWT SDK和程序工作,然后我使用旧的SDK,以确保问题从SD发出,但令人惊讶的程序仍然有效':(

我对什么是过去了解,但更重要我的应用程序:)