2

我有一个运行在 Jboss 应用服务器上的 Spring-WS Web 服务。我还有一个 Spring-MVC 应用程序在运行 Jboss 7 的单独服务器上运行。Spring-MVC 应用程序主要用于用户界面。Spring-WS 应用程序包含业务逻辑的所有服务。

使用我们拥有的组件的标准方法如下:

Client Browser ---(HTTP Request)---> Spring MVC ----(SOAP Request)-----> Spring-WS
Client Browser <---(HTTP Request)--- Spring MVC <----(SOAP Response)<----- Spring-WS

需要将来自客户端浏览器的一些请求更改为直接访问 Web 服务,而不是通过 Spring MVC 应用程序。Spring MVC 应用程序将用于加载初始演示屏幕,但涉及任何更新/写入的操作将通过 Spring-WS 流程。

为了实现这一点,我们有一个定制的进程,它与捕获所有 HTTP 请求的客户端浏览器在同一台机器上运行。其目的是将请求转换为 SOAP 消息,并将响应转换为 HTTP 响应。路径如下图所示:

初始请求(检索演示文稿/用户界面)

Client Browser ---(HTTP Request)---> Spring MVC

后续请求

Client Browser ---(Http Request) ----> SOAP Converter (Local process) ------> (SOAP Request) ----> Spring-WS
Client Browser <---(Http Request) ---- SOAP Converter (Local process) <------ (SOAP Request) <---- Spring-WS

在上述场景中有两条路径发生。在屏幕上显示页面的初始请求将是对 Spring-MVC 进程的请求。任何涉及更改数据的后续请求都将通过上面显示的路径。

我现在遇到的问题是来自 Spring-WS(Web 服务)的所有响应都是 XML 格式的。这意味着当请求来自浏览器时,数据必须来自 Web 服务,但页面需要从 Spring-MVC 应用程序刷新。这在某种程度上感觉有点不对劲,因为每个请求都会涉及到调用。一个获取数据,一个获取演示数据。

为了克服这个问题,我想使用一种技术来实现 Spring-MVC 层,我只需要发出一个初始请求。这意味着用户界面将呈现在屏幕上。对 Spring-WS 服务的所有后续请求都不应导致浏览器被呈现,而不是刷新数据。

我有兴趣知道我可以使用什么样的技术来实现这一目标。这样做的一种方法是使用小程序,但出于安全原因已将其排除在外。我看过几个网站,它们的工作方式与我上面描述的完全一样。即页面从不刷新。一个很好的例子是 Sonatype Nexus Maven 存储库管理器用户界面,如下所示:

http://www.sonatype.com/books/nexus-book/reference/figs/web/repository-manager_public-interface.png

它在网络浏览器中运行,当 Nexus 用户界面在浏览器上加载时,它几乎就像一个 Swing 类型的应用程序。(有人知道 Nexus 使用什么技术来制作用户界面吗?)

我想我的问题是我可以使用哪些基于 Web 的用户界面技术(最好是开源的),它具有摇摆类型的外观和感觉,但不是摇摆,并且需要对服务器刷新屏幕的请求最少?

提前致谢。

4

1 回答 1

1

Nexus 的界面是使用Sencha GXT3 构建的,现在还包含 ExtJS。

看看 GXT API:它包含许多 Web 组件,它们知道如何在不执行完整的请求/响应周期(使用 Ajax)的情况下更新自己的状态,这似乎是您试图摆脱的。

于 2012-06-14T13:03:58.700 回答