Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT:集成第三方Web服务并通过REST/GWT RPC向GWT客户端公开_Gwt_Rest_Gwt Rpc - Fatal编程技术网

GWT:集成第三方Web服务并通过REST/GWT RPC向GWT客户端公开

GWT:集成第三方Web服务并通过REST/GWT RPC向GWT客户端公开,gwt,rest,gwt-rpc,Gwt,Rest,Gwt Rpc,我是一名经验丰富的Java开发人员,但对GWT来说还是新手 考虑一个基于第三方HTTPPOST的WebServicesAPI,它不是完全基于REST的,因为有servlet的配置,其中包括调用这些服务的配置。我正在构建gwt组件,扩展基本gwt组合,并使用这些第三方数据服务获取/修改数据 在普通的java世界中,我会在这些服务上构建一个REST包装器,并通过JAXBXML/Json将它们公开为POJO。然而,在GWT中,我了解到GWT-RPC将是最快的,因为它需要序列化。预计数据量会很大(数千,

我是一名经验丰富的Java开发人员,但对GWT来说还是新手

考虑一个基于第三方HTTPPOST的WebServicesAPI,它不是完全基于REST的,因为有servlet的配置,其中包括调用这些服务的配置。我正在构建gwt组件,扩展基本gwt组合,并使用这些第三方数据服务获取/修改数据

在普通的java世界中,我会在这些服务上构建一个REST包装器,并通过JAXBXML/Json将它们公开为POJO。然而,在GWT中,我了解到GWT-RPC将是最快的,因为它需要序列化。预计数据量会很大(数千,分页)

设计第三方数据服务和gwt客户端组件之间的“桥梁”的最佳方法是什么

  • 我排除了RequestFactory,因为我们有一个由第三方提供的定制servlet来获取Web服务
  • 添加rest包装器会添加第三层间接寻址(第三方api+rest+gwt rpc序列化),感觉太重了
  • 对于低延迟设计的建议,我不必为每个服务调用(pojo)编写太多包装类


    我想在服务器端考虑JAXB,将架构作为新合同,并将其转换为GWT客户端的JSON。

    < P>我建议使用Spring RestMeTepe,Gwt RPC和一个RemoteServiceServlet/Spring桥接器—它将通过来自服务器客户端和干净层的POJO为您提供RPC调用,以便与外部web服务通信


    这将是轻巧和干净的

    我在服务器端使用RestEasy,它使用Hibernate JPA访问数据库。稍加修改,我应该能够切换到Datanucleus JPA

    我在客户端使用RestyGWT

    在仔细考虑DTO后,我能够 -在服务器和客户端之间共享相同的DTO -在服务器和客户端之间共享相同的REST接口(在服务器端REST接口上运行脚本以将返回类型转换为异步回调之后)

    目前,我还尝试将JPADTO与RESTDTO合并,以便在服务器、数据库和客户端之间有一组POJO。因此,每个DTO POJO将混合使用JAX-RS、JAXB、Jackson JSON和JPA注释


    为了减少不必要的客户机-服务器通信量,我使用JSP作为GWT宿主文件,并结合GWT字典类将所有特定于会话的会话静态信息传输到客户机。

    值得指出的是,RPC与RF一样,需要自己的servlet,虽然您将其扩展为提供方法,而不是使用它引用服务方法和实体,但请注意,这需要在以后与AJAX通信时从同一服务器加载GWT JavaScript。仅仅出于这个原因,您可能需要一个额外的服务器端层。不能使用Spring(尽管我对它很熟悉),但我认为Restlet的gwt扩展或RestGWT可能会工作。您是否建议这样做:gwt client=>gwt rpc(客户端)=>rest模块(gwt服务器),该模块将xml转换为pojo=>第三方Web服务?是的,基本上就是这样,它还可以通过相同的源策略很好地解耦解决方案。然而,我想知道是否值得为解决一个简单的问题而包括几个框架、库和代码库:将服务响应xml打包到浏览器客户机dto中。在花了几天时间研究其中一些技术之后,我决定放弃所有这些技术,将RPC与GWT RequestBuilder和一个简单的Xml解析器解决方案结合使用。最后,聪明是不值得的。