我们在提供远程接口时可以使用webservice的方式,使用xmlrpc同样也可以实现,并且开发简单。实现的方式有许多种,以下采用httpservlet的方式实现
需要使用到的jar包:xercesImpl.jar xmlrpc-2.0.1.jar commons-codec_1.3.jar 见附件
1、写个接口实现类
import java.io.IOException;
public class ServerDemo {
//验证登陆
public byte[] checkLogin(byte[] username,byte[] password){
if(new String(username).equals("allen")&&new String(password).equals("123456")){
return "登陆成功".getBytes();
}else
{
return "登陆失败".getBytes();
}
}
}
2、写个初始化的servlet
package com.xml.rpc.server;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.xmlrpc.XmlRpcServer;
public class XrpcProxyServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private XmlRpcServer xmlrpc = new XmlRpcServer();
public XrpcProxyServlet() {
}
public void init() throws ServletException {
xmlrpc.addHandler("xmlrpcOrder", new ServerDemo());
xmlrpc.setMaxThreads(30);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
byte[] result = xmlrpc.execute(request.getInputStream());
response.setContentType("text/xml");
response.setContentLength(result.length);
OutputStream out = response.getOutputStream();
out.write(result);
out.flush();
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
3、在web.xml中配置这个servlet
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.xml.rpc.server.XrpcProxyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/xmlrpc</url-pattern>
</servlet-mapping>
以上服务端的代码完成,下面是客户端调用的实现:
XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");
XmlRpcClient client = new XmlRpcClient("http://localhost:8080/XmlRpc/xmlrpc");
Vector params = new Vector();
params.addElement("allen".getBytes());
params.addElement("123456".getBytes());
username.setText("----alen");
byte[] flag=(byte[])client.execute("xmlrpcOrder.checkLogin",params);
System.out.println("-----调用成功");
-----------------------------------------------------------------
以上实现类的创建方式采用new的方式,若采用spring框架也可以采用注入的方式,
上次用spring的mvc框架实现,实现方式这里也贴一下,在Controller中:
@Controller
public class XmlrpcController extends AbstractController implements InitializingBean {
@Autowired
private OrderService orderService;
XmlRpcServer server=null;
@RequestMapping("/xmlprc.action")
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
byte[] resp = server.execute(request.getInputStream());
response.getOutputStream().write(resp);
return null;
}
public void afterPropertiesSet() throws Exception {
server= new XmlRpcServer();
server.addHandler("xmlrpcOrder", orderService);
}
}
xmlrpc还是比较好用的,同样在其他语言中也有实现,但是在参数的传输方面比较弱这点需要注意,在android应用开发中同样也可以使用,使用方式和上面的完全一致。
分享到:
相关推荐
在Java环境中,XMLRPC提供了一种轻量级的跨平台通信方式,特别适用于分布式系统中的服务交互。 标题中的"xmlrpc-2.0-src.zip_xmlrpc_xmlrpc_java_xmlrpc_s_xmlrpc-2.0.1.jar_"提及的是XMLRPC库的2.0版本源代码和一...
2. **客户端组件**:客户端使用Java XMLRPC库创建代理对象,这个代理对象可以像调用本地方法一样调用远程服务。客户端库负责构造XML数据,通过HTTP发送请求,并处理服务器返回的XML响应。 3. **序列化和反序列化**...
通过以上内容,你应该对Java中的XML-RPC有了深入的理解,知道了如何使用它来进行远程方法调用。结合提供的`MyXMLRPC`源码,你可以进一步实践并完善你的Java XML-RPC应用。记得在实际操作时,根据项目需求选择合适的...
基于 RPC 方式的文件传输应用开发: 实现一个简单的RPC分布应用,实现一个基于RPC 方式的文件传输应用。 功能: 1. 能够查询服务器端文件列表及文件信息; 2. 能够传输大文件,并且分片的方式进行传输。
static String serverUrl = "http://192.168.1.6:81/phacoa/xmlrpc"; static String usr = ""//帐号 static String pwd = ""; //密码 public static <JSONObject> Object RPC(String methodName, List<String> L...
1. **添加依赖**: 使用Maven技术,你需要在项目pom.xml中添加Spring和XML-RPC的相关依赖库,如`spring-context`, `spring-web`, `xmlrpc-client`和`xmlrpc-server`。 2. **配置XML-RPC服务**: 在Spring的配置文件...
入门级XMLRPC工程(Java).rar 是个入门级的rpc应用 里面有简单说明,不明白在站内发信息
用于java RPC编程的相关包xmlrpc-server-3.1.3.jar
5. **示例应用**:演示如何在实际项目中使用XML-RPC库的代码实例。 了解了XML-RPC的基本概念后,我们来看一下Java中具体如何使用Apache XML-RPC库: **客户端使用**: 1. 添加XML-RPC客户端库依赖到项目中。 2. ...
在Java环境中,XMLRPC库是一个常用的选择,可以方便地实现客户端和服务端的通信。 本教程主要围绕以下几个知识点展开: 1. **XMLRPC的基本概念**: - XMLRPC的核心思想是通过XML来封装参数和返回值,然后通过HTTP...
xmlrpc jar包. 版本: 3.1.3
xmlrpc.jar文件,Java调用xmlrpc时需要此jar包
在这个版本中,你可以深入理解XML-RPC的内部工作原理,以及如何在Java应用中集成和使用它。 XML-RPC的核心概念是通过网络传输结构化的数据,即XML格式的数据,来调用远程服务器上的方法。它提供了一种轻量级的跨...
XMLRPC的核心思想是使用HTTP作为传输协议,XML作为数据交换格式,实现客户端和服务器之间的通信。这种设计使得XMLRPC具有跨平台、跨语言的特性,可以在各种操作系统和编程语言中无缝集成。 ### XMLRPC的工作流程 1...
XMLRPC(XML Remote Procedure Call)是一种基于HTTP协议的远程调用技术,它允许客户端...开发者可以通过XMLRPC库轻松地在各种编程语言中实现远程调用,如Python、PHP、Java、C++等,大大降低了跨语言通信的复杂性。
java xmlrpc 所需jar 3.1.3
这个jar包是开发者在实际项目中直接使用的,它提供了XML-RPC客户端和服务端的实现,允许开发者快速地在Java应用程序中集成XML-RPC功能。例如,服务端可以使用XML-RPC服务器端点来暴露方法,而客户端则可以调用这些...
在实际应用中,Apache XML-RPC常被用于构建分布式系统,例如微服务架构中的服务间通信,或者是跨语言交互的场景,比如Java与Python、C#等语言的应用之间进行数据交换。由于其简单易用的特性,许多开源项目和企业系统...
描述中的"webservice rpc远程调用需要的jar包",意味着这个压缩包中的`apache-xmlrpc-3.1.3.jar`文件是一个Java类库,包含了所有必要的类和接口,用于实现XML-RPC的远程过程调用。在Java项目中,将这个JAR文件添加到...