【问题标题】:What deserializes GWT RPC calls client side什么反序列化 GWT RPC 调用客户端
【发布时间】:2014-11-23 15:42:31
【问题描述】:

据我了解,在我的 GWT 项目中,RemoteServiceServlet 在服务器端反序列化和序列化传入和传出数据。

但是客户端呢?我的 serviceAsync 类(我想它接收来自 RemoteServiceServlet 的响应)没有扩展任何东西。

【问题讨论】:

    标签: java gwt serialization deserialization rpc


    【解决方案1】:

    查看有关 RPC 管道的部分(图中的绿色框):

    http://www.gwtproject.org/doc/latest/DevGuideServerCommunication.html

    其中一些类(例如服务代理)是在后台自动生成的,您通常不会意识到它们的存在。

    【讨论】:

    • 所以它是使用 ".. = GWT.create(YourService.class)" 创建的服务代理类?
    【解决方案2】:

    您可以在 com.google.gwt.user.client.rpc.core 包下的 GWT 用户代码 (gwt-user.jar) 中找到 Java 类型的反序列化工具代码

    https://github.com/gwtproject/gwt/tree/46173a7c2511d1156d56fd564717fe6f7cf4a97e/user/src/com/google/gwt/user/client/rpc/core/java

    示例 - com.google.gwt.user.client.rpc.core.java.lang

    Boolean_CustomFieldSerializer.java
    Byte_CustomFieldSerializer.java
    Character_CustomFieldSerializer.java
    Double_CustomFieldSerializer.java
    Float_CustomFieldSerializer.java
    Integer_CustomFieldSerializer.java
    Long_CustomFieldSerializer.java
    Object_Array_CustomFieldSerializer.java
    Short_CustomFieldSerializer.java
    StackTraceElement_CustomFieldSerializer.java
    String_CustomFieldSerializer.java
    Void_CustomFieldSerializer.java
    

    对于扩展 GWT IsSerializable 或 Serializable 的自定义代码,GWT 在编译期间会生成类似的 FieldSerializer 类。

    【讨论】:

    • 所以这些类处理通过网络从客户端发送到服务器端的数据的序列化和反序列化,而不是服务代理类?
    【解决方案3】:

    这由 GWT 处理。您只需要确保您的 DTO 是可序列化的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 2016-06-28
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多