Spring 通过 HTTP Invoker 远程调用示例2025年3月17日 | 阅读 3 分钟 Spring 提供了自己的远程服务实现,称为 HttpInvoker。它可以用于 http 请求,比 RMI 更好,并且可以在防火墙之间正常工作。 通过 HttpInvokerServiceExporter 和 HttpInvokerProxyFactoryBean 类,我们可以实现 Spring 的 Http Invoker 提供的远程服务。
Http Invoker 和其他远程调用技术您可以使用多种远程调用技术,让我们看看哪一种最适合您。 Http Invoker Vs RMIRMI 使用 JRMP 协议,而 Http Invokes 使用 HTTP 协议。由于企业应用程序大多使用 http 协议,因此最好使用 HTTP Invoker。RMI 也比 HTTP Invoker 存在一些安全问题。HTTP Invoker 可以在防火墙之间正常工作。 Http Invoker Vs Hessian 和 BurlapHTTP Invoker 是 Spring 框架的一部分,但 Hessian 和 burlap 是专有的。所有这些都可以在防火墙之间正常工作。Hessian 和 Burlap 可以移植,以与其他语言(如 .Net 和 PHP)集成,但 HTTP Invoker 不能。
Spring HTTP Invoker 示例要创建一个简单的 Spring 的 HTTP invoker 应用程序,您需要创建以下文件。 - Calculation.java
- CalculationImpl.java
- web.xml
- httpInvoker-servlet.xml
- client-beans.xml
- Client.java
1) Calculation.java这是一个包含一个 cube 方法的简单接口。 2) CalculationImpl.java这个类提供了 Calculation 接口的实现。 3) web.xml在这个 xml 文件中,我们将 DispatcherServlet 定义为前端控制器。 如果任何请求后跟 .http 扩展名,它将被转发到 DispatcherServlet。 4) httpInvoker-servlet.xml它必须创建在 WEB-INF 文件夹中。它的名称必须是 servletname-servlet.xml。它定义了 CalculationImpl 和 HttpInvokerServiceExporter 的 bean。 5) client-beans.xml在这个 xml 文件中,我们正在定义 HttpInvokerProxyFactoryBean 的 bean。 您需要定义这个类的两个属性。 - serviceUrl
- serviceInterface
6) Client.java此类获取 Calculation 的实例并调用该方法。 输出
如何运行此示例启动并部署项目,这里我们假设服务器正在 8888 端口号上运行。 如果端口号不同,请更改 client-beans.xml 中的 serviceURL。 然后,编译并运行 Client.java 文件。
基于 Web 的客户端在上面给出的示例中,我们使用了基于控制台的客户端。我们也可以使用基于 Web 的客户端。您需要创建 3 个附加文件。在这里,我们使用以下文件 - ClientInvoker.java
- index.jsp
- process.jsp
ClientInvoker.java它只定义了一个方法 getCube(),该方法返回给定数字的立方。 index.jsp它创建一个表单来获取数字。 process.jsp它创建一个表单来获取数字。 输出

|