2013-02-01 23 views
0

我有一个异步的Web服务对,我需要在Web层中处理。我写了一个'请求'服务客户端,向服务发送查询请求。客户端收到服务器成功收到消息的http'200'。在Web层处理异步单向服务对

然后我有一个单独的响应侦听器,它是一个接收响应的Camel/CXF Web服务。我正在使用WS-Addressing消息ID来关联请求和响应。

我现在的任务是在网页层处理这个任务。我希望用户填写表单,点击提交,然后调用Web服务。然后,我的CXF Web服务侦听器将收到响应,查看消息ID并将其返回到Web层。

对于同步服务,这是非常简单的事情。但是,对于异步Web服务对,我不知道从哪里开始。在调用Web服务时,我可以使用轮询方法,将消息ID写入地图,然后轮询地图并等待Web侦听器将响应写入地图。不过,我认为有框架支持这一点。

我在研究Spring MVC和JQuery,因为我认为这是正确的方向,但我有问题为初学者找到好的资源。

有没有人有任何想法?

感谢, 约杰什

回答

0

一种方法是写一个Spring MVC的控制器,调用出站Web服务,并等待入站Web服务:收到(即响应)。您可以通过在等待入站服务时暂停线程并在之后恢复线程来实现此目的。发生这种情况时,您可以在网站上显示某种微调。所以从浏览器的角度来看,它仍然看起来像一个请求和响应。

但是,根据您的网站流量,这可能是一种效率低下的方法,因为在等待入站服务时将使用一个Web容器线程。如果您的网站流量很大 - 并且入站和出站请求之间的延迟很大,您可以快速用完免费线程并使网站崩溃。

+0

嗨杰里,感谢您的反馈。我认为这种方法可行,但我希望强大的AJAX框架可能会有更高效的方法。 –

+0

是的,上面的方法应该包含Ajax。您暂停服务器端线程,并在此过程中只显示浏览器上的微调器。浏览器和服务器之间的通信应以异步方式完成 – gerrytan

+0

谢谢格里。我会给它一个镜头并回报。 –