`

Apache RPC调用实例

阅读更多

一.工程结构



二.工程代码

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"。

 

文章来源:http://www.oschina.net/code/snippet_214582_10641

  • 大小: 10.8 KB
分享到:
评论

相关推荐

    Java RPC调用示例

    在这个Java RPC调用示例中,我们将探讨RPC的基本概念、实现机制以及如何在Java中创建一个简单的RPC框架。 首先,RPC的核心思想是将远程调用过程透明化,使得开发者可以像调用本地方法一样调用远程服务。这种抽象...

    c# 实现远程调用(rpc) remoting

    "c# 实现远程调用(rpc) remoting"是C#的一个关键特性,它允许对象在不同的进程甚至不同的计算机之间进行通信,仿佛它们是在同一个内存空间内操作。这个主题涉及到分布式系统开发,对于理解跨进程通信和提升系统的可...

    apache xml rpc client

    总结来说,Apache XML-RPC客户端是Java开发者实现远程调用的一种实用工具,通过简单的API可以轻松地与支持XML-RPC的服务器进行通信。理解并掌握其工作原理和使用方法,有助于构建分布式系统中的通信层,提高开发效率...

    Apache xml-rpc入门

    ### Apache XML-RPC 入门知识点详解 #### 一、XML-RPC 概念与应用场景 **XML-RPC(XML Remote Procedure Call)**是一种轻量级的远程过程调用协议,它允许在不同操作系统和语言环境之间进行数据交换。XML-RPC 使用...

    java rpc 实例

    在Java中,Apache的XML-RPC库提供了一种方便的方式来实现这种调用。 首先,我们需要在服务端定义一个可供远程调用的方法。这个方法通常是一个公共的非静态方法,它会被RPC框架暴露出去。例如,我们可以创建一个名为...

    详解axis调用webservice实例

    标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...

    rpc远程调用

    1. **客户端**:发起RPC调用的一方,它通常有一个代理对象,这个代理对象就像是远程服务的一个本地副本,客户端通过调用代理对象的方法来发起请求。 2. **服务端**:接收并处理RPC请求的一方,它提供了具体的服务...

    apache.soap...jar包,soap 调用webservice核心包

    总结来说,Apache SOAP是Java Web服务开发的重要工具,它提供了一套完整的框架,支持SOAP协议的实现,包括XML解析、RPC调用模式和错误处理。通过理解并熟练运用这个库,开发者能够高效地构建和调用SOAP Web服务。在...

    xml_rpc需要的jar包

    这个库提供了客户端和服务器端的实现,使得开发者可以轻松地创建能够进行XML-RPC调用的应用程序。它处理XML-RPC消息的序列化和反序列化,以及HTTP请求和响应的处理。 3. **commons-httpclient-3.0-rc4.jar**:...

    Java WebService 简单实例 方式二(axis1直接调用方式)

    ### Java WebService 简单实例 方式二(axis1直接调用方式) #### 背景介绍 在软件开发领域,特别是在企业级应用中,Web服务作为一种标准的技术规范被广泛采用,它允许不同系统间进行通信与数据交换。Java Web ...

    rpc学习资料

    2. **序列化与反序列化**:在RPC调用中,参数和返回值需要通过网络传输,这就需要将对象转换为可传输的二进制形式(序列化),在接收端再还原为对象(反序列化)。Java中常见的序列化库有Hessian、BCEL、FastJSON等...

    Hessian远程调用RPC最简单demo

    Hessian是Apache软件基金会的Caucho项目开发的一个开源RPC框架,它支持二进制协议,能够高效地进行远程方法调用。本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,...

    Apache xml-rpc入门 sevlet服务及启动服务器线程

    然后,我们需要在Servlet的doPost方法中设置处理程序实例,以便XML-RPC服务器能够找到并调用它们: ```java @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ...

    RPC.rar_java rpc

    5. **协议设计**:定义RPC调用的协议,包括请求结构、响应结构、错误处理等。常见的有HTTP、gRPC(基于protobuf的高性能RPC框架)等。 在这个“RPC文件操作”示例中,可能包含以下功能: 1. **文件创建**:客户端...

    RPC.rar_rpc

    4. **序列化与反序列化(Serialization & Deserialization)**:RPC调用涉及跨网络的数据传输,因此数据需要被序列化成可传输的格式,到达目的地后再反序列化恢复原貌。常见的序列化工具有JSON、XML、protobuf等。 ...

    Java的XML-RPC函数库源代码

    3. 将服务类注册到服务器,使其可供XML-RPC调用。 4. 启动服务器,等待客户端请求。 在实际开发中,XML-RPC库通常与其他Java Web框架如Spring、Struts等结合使用,以提供更强大的功能和集成能力。此外,XML-RPC的...

    Java调用WebService接口的方法

    本文将深入探讨如何使用Java调用WebService接口,以实例分析有参方法Add的使用技巧。 首先,我们需要了解WebService的基础知识。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的Web应用程序,它能够通过HTTP...

Global site tag (gtag.js) - Google Analytics