一.工程结构
二.工程代码
Server.java
package com.bijian.study; import org.apache.xmlrpc.server.PropertyHandlerMapping; import org.apache.xmlrpc.server.XmlRpcServer; import org.apache.xmlrpc.server.XmlRpcServerConfigImpl; import org.apache.xmlrpc.webserver.WebServer; public class Server { private static final int port = 8005; public static void main(String[] args) throws Exception { WebServer webServer = new WebServer(port); XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer(); PropertyHandlerMapping phm = new PropertyHandlerMapping(); phm.addHandler("HelloHandler", HelloHandler.class); xmlRpcServer.setHandlerMapping(phm); XmlRpcServerConfigImpl config = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig(); config.setEnabledForExtensions(true); config.setContentLengthOptional(false); webServer.start(); } }
HelloHandler.java
package com.bijian.study; public class HelloHandler { public String sayHello(String name, String word) { return name + "说:" + word; } }
Client.java
package com.bijian.study; import java.net.URL; import java.util.ArrayList; import java.util.List; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; public class Client { public static void main(String[] args) throws Exception { XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL("http://127.0.0.1:8005/xmlrpc")); XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); List<String> list = new ArrayList<String>(); list.add("bijian"); list.add("rpc demo"); String result = (String) client.execute("HelloHandler.sayHello", list); System.out.println(result); } }
三.运行效果
先运服Server.java,再运行Client.java,Client输出"bijian说:rpc demo"。
相关推荐
在这个Java RPC调用示例中,我们将探讨RPC的基本概念、实现机制以及如何在Java中创建一个简单的RPC框架。 首先,RPC的核心思想是将远程调用过程透明化,使得开发者可以像调用本地方法一样调用远程服务。这种抽象...
"c# 实现远程调用(rpc) remoting"是C#的一个关键特性,它允许对象在不同的进程甚至不同的计算机之间进行通信,仿佛它们是在同一个内存空间内操作。这个主题涉及到分布式系统开发,对于理解跨进程通信和提升系统的可...
总结来说,Apache XML-RPC客户端是Java开发者实现远程调用的一种实用工具,通过简单的API可以轻松地与支持XML-RPC的服务器进行通信。理解并掌握其工作原理和使用方法,有助于构建分布式系统中的通信层,提高开发效率...
### Apache XML-RPC 入门知识点详解 #### 一、XML-RPC 概念与应用场景 **XML-RPC(XML Remote Procedure Call)**是一种轻量级的远程过程调用协议,它允许在不同操作系统和语言环境之间进行数据交换。XML-RPC 使用...
在Java中,Apache的XML-RPC库提供了一种方便的方式来实现这种调用。 首先,我们需要在服务端定义一个可供远程调用的方法。这个方法通常是一个公共的非静态方法,它会被RPC框架暴露出去。例如,我们可以创建一个名为...
标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...
1. **客户端**:发起RPC调用的一方,它通常有一个代理对象,这个代理对象就像是远程服务的一个本地副本,客户端通过调用代理对象的方法来发起请求。 2. **服务端**:接收并处理RPC请求的一方,它提供了具体的服务...
总结来说,Apache SOAP是Java Web服务开发的重要工具,它提供了一套完整的框架,支持SOAP协议的实现,包括XML解析、RPC调用模式和错误处理。通过理解并熟练运用这个库,开发者能够高效地构建和调用SOAP Web服务。在...
这个库提供了客户端和服务器端的实现,使得开发者可以轻松地创建能够进行XML-RPC调用的应用程序。它处理XML-RPC消息的序列化和反序列化,以及HTTP请求和响应的处理。 3. **commons-httpclient-3.0-rc4.jar**:...
### Java WebService 简单实例 方式二(axis1直接调用方式) #### 背景介绍 在软件开发领域,特别是在企业级应用中,Web服务作为一种标准的技术规范被广泛采用,它允许不同系统间进行通信与数据交换。Java Web ...
2. **序列化与反序列化**:在RPC调用中,参数和返回值需要通过网络传输,这就需要将对象转换为可传输的二进制形式(序列化),在接收端再还原为对象(反序列化)。Java中常见的序列化库有Hessian、BCEL、FastJSON等...
Hessian是Apache软件基金会的Caucho项目开发的一个开源RPC框架,它支持二进制协议,能够高效地进行远程方法调用。本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,...
然后,我们需要在Servlet的doPost方法中设置处理程序实例,以便XML-RPC服务器能够找到并调用它们: ```java @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ...
5. **协议设计**:定义RPC调用的协议,包括请求结构、响应结构、错误处理等。常见的有HTTP、gRPC(基于protobuf的高性能RPC框架)等。 在这个“RPC文件操作”示例中,可能包含以下功能: 1. **文件创建**:客户端...
4. **序列化与反序列化(Serialization & Deserialization)**:RPC调用涉及跨网络的数据传输,因此数据需要被序列化成可传输的格式,到达目的地后再反序列化恢复原貌。常见的序列化工具有JSON、XML、protobuf等。 ...
3. 将服务类注册到服务器,使其可供XML-RPC调用。 4. 启动服务器,等待客户端请求。 在实际开发中,XML-RPC库通常与其他Java Web框架如Spring、Struts等结合使用,以提供更强大的功能和集成能力。此外,XML-RPC的...
本文将深入探讨如何使用Java调用WebService接口,以实例分析有参方法Add的使用技巧。 首先,我们需要了解WebService的基础知识。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的Web应用程序,它能够通过HTTP...