`
zxs19861202
  • 浏览: 915231 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

java中xmlrpc的使用

    博客分类:
  • java
阅读更多

    我们在提供远程接口时可以使用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应用开发中同样也可以使用,使用方式和上面的完全一致。

 

 

 

 

分享到:
评论
2 楼 fhqltzhaoli 2013-08-07  
看看,试试
1 楼 johnny_wjx 2012-10-10  
好文章,楼主能不能就是spring整合xml-rpc写的再详细一些

相关推荐

    xmlrpc-2.0-src.zip_xmlrpc_xmlrpc java_xmlrpc s_xmlrpc-2.0.1.jar_

    在Java环境中,XMLRPC提供了一种轻量级的跨平台通信方式,特别适用于分布式系统中的服务交互。 标题中的"xmlrpc-2.0-src.zip_xmlrpc_xmlrpc_java_xmlrpc_s_xmlrpc-2.0.1.jar_"提及的是XMLRPC库的2.0版本源代码和一...

    java xmlrpc框架包

    2. **客户端组件**:客户端使用Java XMLRPC库创建代理对象,这个代理对象可以像调用本地方法一样调用远程服务。客户端库负责构造XML数据,通过HTTP发送请求,并处理服务器返回的XML响应。 3. **序列化和反序列化**...

    Java xmlrpc远程方法调用(源码)

    通过以上内容,你应该对Java中的XML-RPC有了深入的理解,知道了如何使用它来进行远程方法调用。结合提供的`MyXMLRPC`源码,你可以进一步实践并完善你的Java XML-RPC应用。记得在实际操作时,根据项目需求选择合适的...

    java实现XmlRPC文件传输

    基于 RPC 方式的文件传输应用开发: 实现一个简单的RPC分布应用,实现一个基于RPC 方式的文件传输应用。 功能: 1. 能够查询服务器端文件列表及文件信息; 2. 能够传输大文件,并且分片的方式进行传输。

    (java)xmlrpc.7z

    static String serverUrl = "http://192.168.1.6:81/phacoa/xmlrpc"; static String usr = ""//帐号 static String pwd = ""; //密码 public static &lt;JSONObject&gt; Object RPC(String methodName, List&lt;String&gt; L...

    Spring整合JAVA XMLRPC

    1. **添加依赖**: 使用Maven技术,你需要在项目pom.xml中添加Spring和XML-RPC的相关依赖库,如`spring-context`, `spring-web`, `xmlrpc-client`和`xmlrpc-server`。 2. **配置XML-RPC服务**: 在Spring的配置文件...

    入门级XMLRPC工程(Java).rar

    入门级XMLRPC工程(Java).rar 是个入门级的rpc应用 里面有简单说明,不明白在站内发信息

    用于java RPC编程的相关包xmlrpc-server-3.1.3.jar

    用于java RPC编程的相关包xmlrpc-server-3.1.3.jar

    Java的XML-RPC函数库源代码

    5. **示例应用**:演示如何在实际项目中使用XML-RPC库的代码实例。 了解了XML-RPC的基本概念后,我们来看一下Java中具体如何使用Apache XML-RPC库: **客户端使用**: 1. 添加XML-RPC客户端库依赖到项目中。 2. ...

    XMLRPC jar包+教程+例子

    在Java环境中,XMLRPC库是一个常用的选择,可以方便地实现客户端和服务端的通信。 本教程主要围绕以下几个知识点展开: 1. **XMLRPC的基本概念**: - XMLRPC的核心思想是通过XML来封装参数和返回值,然后通过HTTP...

    xmlrpc3.1.3 jar包.

    xmlrpc jar包. 版本: 3.1.3

    xmlrpc.jar文件

    xmlrpc.jar文件,Java调用xmlrpc时需要此jar包

    apache-xmlrpc-3.1.3-src.zip

    在这个版本中,你可以深入理解XML-RPC的内部工作原理,以及如何在Java应用中集成和使用它。 XML-RPC的核心概念是通过网络传输结构化的数据,即XML格式的数据,来调用远程服务器上的方法。它提供了一种轻量级的跨...

    xmlrpc简单示例

    XMLRPC的核心思想是使用HTTP作为传输协议,XML作为数据交换格式,实现客户端和服务器之间的通信。这种设计使得XMLRPC具有跨平台、跨语言的特性,可以在各种操作系统和编程语言中无缝集成。 ### XMLRPC的工作流程 1...

    xmlrpc类库

    XMLRPC(XML Remote Procedure Call)是一种基于HTTP协议的远程调用技术,它允许客户端...开发者可以通过XMLRPC库轻松地在各种编程语言中实现远程调用,如Python、PHP、Java、C++等,大大降低了跨语言通信的复杂性。

    apache-xmlrpc-3.1.3.jar

    java xmlrpc 所需jar 3.1.3

    apache xmlrpc jar src

    这个jar包是开发者在实际项目中直接使用的,它提供了XML-RPC客户端和服务端的实现,允许开发者快速地在Java应用程序中集成XML-RPC功能。例如,服务端可以使用XML-RPC服务器端点来暴露方法,而客户端则可以调用这些...

    apache xmlrpc-3.1.1-sources.zip

    在实际应用中,Apache XML-RPC常被用于构建分布式系统,例如微服务架构中的服务间通信,或者是跨语言交互的场景,比如Java与Python、C#等语言的应用之间进行数据交换。由于其简单易用的特性,许多开源项目和企业系统...

    apache-xmlrpc

    描述中的"webservice rpc远程调用需要的jar包",意味着这个压缩包中的`apache-xmlrpc-3.1.3.jar`文件是一个Java类库,包含了所有必要的类和接口,用于实现XML-RPC的远程过程调用。在Java项目中,将这个JAR文件添加到...

Global site tag (gtag.js) - Google Analytics