GWT 反序列化 RPC 调用中的泛型列表

Posted

技术标签:

【中文标题】GWT 反序列化 RPC 调用中的泛型列表【英文标题】:GWT Deserialize Generics List in RPC Call 【发布时间】:2011-05-30 13:28:51 【问题描述】:

我有一个返回可序列化对象列表的方法,我对该方法进行了 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;
   

感谢您的帮助

【问题讨论】:

我以前从未见过在一个类上实现 Serializable,IsSerializable,通常只需要一个就足够了。我使用 Serializable,它总是对我有用。 我只使用了可序列化但它不起作用。 我认为我的问题在于列表,因为当我编辑返回对象而不是列表的方法时,一切正常。 您使用的是哪个 GWT 版本? GWT code.google.com/p/google-web-toolkit/issues/detail?id=1985 【参考方案1】:

感谢大家的帮助 这是一个我仍然无法理解的愚蠢错误。 我更改了 GWT sdk 并且程序可以运行,然后我使用旧的 SDK 来确保问题出自 sdk,但令人惊讶的是程序仍然可以运行':(

我对过去的事情一无所知,但我的应用程序工作更重要:)

【讨论】:

以上是关于GWT 反序列化 RPC 调用中的泛型列表的主要内容,如果未能解决你的问题,请参考以下文章

GWT:响应无法反序列化

出于调试目的从 GWT RPC 有效负载中反序列化日期和时间戳

打开新页面,反序列化 GWT 中的对象

使用 GWT 内置的 RPC 序列化/反序列化机制

GWT JPA - 无法反序列化响应

GWT:枚举列表抛出“无法反序列化响应”