`

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
分享到:
评论

相关推荐

    zookeeper + thrift实现的RPC 服务治理框架演示

    这个示例工程和我的博客《架构设计:系统间通信(13)——RPC实例Apache Thrift 下篇》(http://blog.csdn.net/yinwenjie/article/details/49869535)相对应。相关的设计和代码说明,请参见我的博客。另外,工程已经...

    基于datax实现data以rpc的方式传递json配置调用推数服务.zip

    基于datax实现data以rpc的方式传递json配置调用推数服务.zip 针对datax进行2次开发,实现data 以rpc的方式传递json配置调用推数服务,同时修复datax多处bug。项目中也引入nacos作为服务的配置中心和注册中心; 同时...

    Dubbo服务以及压测脚本开发

    Apache Dubbo |ˈdʌbəʊ| 提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均 衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。 面向接口代理的高性能RPC调用...

    h_JAVA 2应用编程150例.rar

    实例99 访问SOAP RPC服务 339 实例100 SOAP消息编程 342 实例101 构建SOAP Script服务 347 实例102 应用SOAP EJB Bean服务 354 实例103 部署SOAP COM服务 358 实例104 查询UDDI信息 364 第10章 Java 2 Platform ...

    JAVA上百实例源码以及开源项目源代码

    摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,...

    java应用软件程序设计

    525 实例143 安装配置Tomcat 526 实例144 安装配置Apache 528 实例145 安装配置WebLogic 529 实例146 整合Tomcat与IIS 531 实例147 整合Tomcat与Apache 532 实例148 整合JBuilder与WebLocig 533...

    93个netty高并发教学视频下载.txt

    20_通过Apache Thrift实现Java与Python的RPC调用;21_gRPC深入详解 ;22_gRPC实践 ;23_Gradle Wrapper在Gradle项目构建中的最佳实践;24_gRPC整合Gradle与代码生成············82_Netty引用计数原子...

    精通并发与netty 无加密视频

    第20讲:通过Apache Thrift实现Java与Python的RPC调用 第21讲:gRPC深入详解 第22讲:gRPC实践 第23讲:Gradle Wrapper在Gradle项目构建中的最佳实践 第24讲:gRPC整合Gradle与代码生成 第25讲:gRPC通信示例与...

    精通并发与netty视频教程(2018)视频教程

    20_通过Apache Thrift实现Java与Python的RPC调用 21_gRPC深入详解 22_gRPC实践 23_Gradle Wrapper在Gradle项目构建中的最佳实践 24_gRPC整合Gradle与代码生成 25_gRPC通信示例与JVM回调钩子 26_gRPC服务器流式调用...

    精通并发与 netty 视频教程(2018)视频教程

    20_通过Apache Thrift实现Java与Python的RPC调用 21_gRPC深入详解 22_gRPC实践 23_Gradle Wrapper在Gradle项目构建中的最佳实践 24_gRPC整合Gradle与代码生成 25_gRPC通信示例与JVM回调钩子 26_gRPC服务器流式调用...

    JAVA上百实例源码以及开源项目

    摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB 基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,...

    JS API 接口接收与返回

    //非静态方法 需要实例化 //注册别名调用 $server-&gt;add('hello', NULL, 'hi'); //第三参数是函数的别名 客户端通过别名来调用函数 $server-&gt;add('foo', 'Example1', 'ex1_foo'); $server-&gt;add('bar', new ...

    MapReduceV1:TaskTracker端启动Task流程分析

    TaskTracker周期性地向JobTracker发送心跳报告,在RPC调用返回结果后,解析结果得到JobTracker下发的运行Task的指令,即LaunchTaskAction,就会在TaskTracker节点上准备运行这个Task。Task的运行是在一个与...

    Dubbo服务框架-其他

    Apache Dubbo提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。 1、面向接口代理的高性能RPC调用 提供高性能...

    php网络开发完全手册

    1.4.5 Apache的配置文件httpd.conf与 1.4.5 .htaccess的简介 13 1.4.6 PHP的配置文件php.ini的简介 13 1.4.7 PHP常用参数的配置 14 1.5 几种综合网络服务器系统的安装 14 1.5.1 XAMPP 14 1.5.2 WAMP 16 1.5.3 ...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics