这个请求是什么版本的GWT-RPC?

时间:2014-01-26 21:00:07

标签: gwt gwt-rpc gwt2

我有这种请求似乎是GWT-RPC格式:

  

R7〜 “61〜com.foo.Service〜” 14〜方法a〜D2〜 “3〜F7E〜” 3〜〜的BOe〜Ecom.foo.data.BeanType〜I116〜Lcom.foo.Parameter I5〜” 1〜b〜Z0〜 “1〜N〜V〜” 1〜O〜Z1〜 “1〜p〜Z1〜” 1〜q〜V〜'

但它不符合此处描述的协议:

这个协议究竟是什么?它真的是GWT-RPC还是其他东西(deRPC?)?

查看gwt-2.5.1源代码,我注意到以下包可能会生成这种格式:

  • com.google.gwt.rpc.client
  • com.google.gwt.rpc.server

这是deRPC吗?

1 个答案:

答案 0 :(得分:3)

基于您列出的软件包中deRPC类的快速浏览,它确实看起来像deRPC。请注意,deRPC一直被标记为实验性的,现在已弃用,而且应该使用RPC或RequestFactory。

似乎证实了这一点的细节:

  • com.google.gwt.rpc.client.impl.SimplePayloadSink#RPC_SEPARATOR_CHAR是一个等于~字符的常量,它似乎是您提供的示例字符串中不同标记之间的分隔符。

  • com.google.gwt.rpc.client.impl.SimplePayloadSink and com.google.gwt.rpc.server.SimplePayloadDecoder`都有许多评论,似乎描述了您在那里看到的相同基本格式:

      // "4~abcd中的
    • endVisit(StringValueCommand x, Context ctx)与示例字符串中的几个标记紧密匹配 - 一个表示字符串的引号,一个描述长度的int,一个~分隔符,然后是字符串本身(这不符合所有内容,我怀疑是因为您删除了有关服务和方法名称的详细信息):

      • "3~F7e

      • "3~B0e

      • "1~b

    • 布尔都会关注Z1Z0,如您的示例字符串