【问题标题】:GWT client and spring server with rest APIsGWT 客户端和带有 REST API 的 Spring 服务器
【发布时间】:2014-08-05 16:36:43
【问题描述】:

我是 GWT 用户,我很欣赏它有机会使用 Java 开发 Web 界面。 目前,一个团队正在开发一个基于 Spring 的 Web 应用程序的服务器端,该应用程序提供了 rest APIs。 我的想法是使用 GWT 创建客户端应用程序,而不是调用一些 gwt rest api,我想从这样的客户端调用基于 spring 的服务器公开的 rest api。

我的问题是:这听起来合理吗?我可以只编写代码并交叉编译一个调用外部 rest 应用程序的 gwt 客户端,还是我仍然需要 GWT 服务器将请求传递给基于 spring 的服务器?什么是潜在的部署方案?谢谢。

【问题讨论】:

    标签: java spring gwt


    【解决方案1】:

    您根本不需要 GWT 服务器功能 (gwt-server.jar)。您只需要一个 Web 服务器来托管您编译的 GWT 应用程序,例如 nginx。

    对我有用的是使用 GWTP Rest support 从服务器和 GWT 编写简单的 REST 调用 (Spring MVC)。

    Jackson 和GwtJackson 用于双方序列化/反序列化 DTO。

    为避免SOP 问题,请使用反向代理或实现CORS

    【讨论】:

    • 谢谢。为什么是杰克逊?格森呢?另外,您是否认为我可以跳过反向代理并将客户端部署在与 Web 应用程序相同的服务器上,即 Apache Tomcat?
    • Spring MVC 默认使用 MappingJackson2HttpMessageConverter 并且 GWTJackson 在客户端支持 jackson。我猜Gson也适合。当然,您可以跳过反向代理。在 tomcat 中部署应用程序是最简单的方法。
    • 好的。如果我改变方法和计划怎么办:(1)用户与基于 Spring 的服务器通信; (2)服务器将用户的请求分发给GWT客户端; (3) GWT 客户端对基于 Spring 的服务器进行 REST 调用以获取结果,例如从数据库加载并由我的业务逻辑详细说明的数据; (4) GWT 客户端准备好要显示给用户的网页并返回给基于 Spring 的服务器; (5) 基于 Spring 的服务器将页面转发给用户。这行得通吗?
    • 4 和 5 不正确。用户在 (2) 中下载整个客户端应用程序。客户端在用户交互时重新绘制自己。例如,这是一种与 JSP 不同的方法。 GWT客户端app和spring server只交换json信息!
    • 所以,你说我无法让用户直接与基于 spring 的服务器通信,该服务器调解与 GWT 客户端的通信,因为应该希望 GWT 客户端部署在用户的?显然,在调用 REST API 时,我仍然需要与基于 spring 的服务器交换 JSON。
    猜你喜欢
    • 2021-11-18
    • 2017-10-30
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多