返回介绍

15.4.2 通过 HTTP 访问服务

发布于 2024-08-17 00:45:49 字数 1251 浏览 0 评论 0 收藏 0

这听起来像打破记录,但是我还得告诉你,访问基于HTTP invoker的服务很类似于我们之前使用的其他远程服务代理。实际上就是一样的。如图15.9所示,HttpInvokerProxyFactoryBean填充了相同的位置,正如我们在本章所看到的其他远程服务代理工厂bean一样。

图15.9 HttpInvokerProxyFactoryBean是一个代理工厂bean,用于生成一个代理,该代理使用Spring特有的基于HTTP协议进行远程通信

为了把基于HTTP invoker的远程服务装配进我们的客户端Spring应用上下文中,我们必须将 HttpInvokerProxyFactoryBean 配置为一个bean来代理它,如下所示:

与15.2.2小节和15.3.2小节的bean定义相对比,我们会发现几乎没什么变化。serviceInterface属性仍然用来标识Spitter服务所实现的接口,而serviceUrl属性仍然用来标识远程服务的位置。因为HTTP invoker是基于HTTP的,如同Hessian和Burlap一样,serviceUrl可以包含与Hessian和Burlap版本中的bean一样的URL。

难道你不喜欢对称美吗?

Spring的HTTP invoker是作为两全其美的远程调用解决方案而出现的,把HTTP的简单性和Java内置的对象序列化机制融合在一起。这使得HTTP invoker服务成为一个引人注目的替代RMI或Hessian/Burlap的可选方案。

要记住HTTP invoker有一个重大的限制:它只是一个Spring框架所提供的远程调用解决方案。这意味着客户端和服务端必须都是Spring应用。并且,至少目前而言,也隐含表明客户端和服务端必须是基于Java的。另外,因为使用了Java的序列化机制,客户端和服务端必须使用相同版本的类(与RMI类似)。

RMI、Hessian、Burlap和HTTP invoker都是远程调用的可选解决方案。但是当面临无所不在的远程调用时,Web服务是势不可挡的。下一节,我们将了解Spring如何对基于SOAP的Web服务远程调用提供支持。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文