jsonrpc环境搭建和简单实例

一、环境准备

  下载需要的jar包和js文件,下载地址:https://yunpan.cn/cxvbm9DhK9tDq  访问密码 6a50

二、新建一个web工程,jsonrpc-1.0.jar复制到lib目录下,jsonrpc.js放到WebContent目录下,如下图所示:

到此,环境已经准备完毕。

简单实例:

一、新建RPC远程调用的类,RPCTest.java,如下图所示:

源码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

package com.cvicse.ump.rpc;

import java.util.HashMap;

import java.util.Map;

public class RPCTest {

    

    public String TestStringRpc(String rpcString){

        return "rpc字符串:"+rpcString;

    }

    

    public Map TestMapRpc(String schoolName){

        Map map = new HashMap<String, String>();

        map.put("初一","好好学习,努力上初二");

        map.put("初二","好好学习,努力上初三");

        map.put("初三","好好学习,努力上大学");

        

        return map;

    }

}

  代码分析:函数TestStringRpc返回一个字符串;函数TestMapRpc返回一个map。

二、新建jsp,调用远程接口,如下图所示:

源码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge" />
<jsp:useBean id="RPCTest" scope="request" class="com.cvicse.ump.rpc.RPCTest" ></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RPC TEST</title>
<script type="text/javascript" src="jsonrpc.js"></script>
<%
JSONRPCBridge.registerObject("RPCTest", RPCTest);
%>
<script type="text/javascript">var jsonrpc = new JSONRpcClient("JSON-RPC");function callback(result, exception){if (exception == null) {alert(result);} else {alert(exception.message);}}function getRPCName(){jsonrpc.RPCTest.TestStringRpc(callback,"你好,祖国!");}function getRPCMap(){jsonrpc.RPCTest.TestMapRpc(receive,"实验中学");}function receive(result, exception){if (exception == null) {var mid = result.map;for(var key in mid){alert(key+":"+mid[key]);}}else {alert(exception.message);}}
</script>
</head>
<body>
<input type="button" value="rpc字符串测试" οnclick="getRPCName()">
<input type="button" value="rpcMap测试" οnclick="getRPCMap()">
</body>
</html>

源码分析:

生成一个JSONRPCBridge对象:<jsp:useBean id="JSONRPCBridge" scope="session" class="com.metaparadigm.jsonrpc.JSONRPCBridge" />;

生成一个RPCTest对象:<jsp:useBean id="RPCTest" scope="request" class="com.cvicse.ump.rpc.RPCTest" ></jsp:useBean>;

引入jsonrpc.js文件:<script type="text/javascript" src="jsonrpc.js"></script>

把要远程调用的对象注册:JSONRPCBridge.registerObject("RPCTest", RPCTest);

定义远程调用的客户端:var jsonrpc = new JSONRpcClient("JSON-RPC");函数参数"JSON-RPC"调用servlet的url,和后面Web.xml中定义的servlet中url对应;

真正的远程调用:jsonrpc.RPCTest.TestStringRpc(callback,"你好,祖国!");和jsonrpc.RPCTest.TestMapRpc(receive,"实验中学");参数中的callback和receive是两个对应的回调函数。

三、在Web.xml中,配置对应的servlet,如下图所示:

源码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>JSONRPCServlet</servlet-name><servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class></servlet><servlet-mapping><servlet-name>JSONRPCServlet</servlet-name><url-pattern>/JSON-RPC</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

注意:url-pattern中的/JSON-RPC与jsp中var jsonrpc = new JSONRpcClient("JSON-RPC");中的参数一致。

运行效果:

对应工程源码:https://yunpan.cn/cxvzMXyEFS6tf  访问密码 6561

转载 jsonrpc环境搭建和简单实例相关推荐

  1. Appium+Java环境搭建及简单实例

    Appium+Java环境搭建及简单实例 一.下载jdk并配置好环境 二.下载Android-sdk并配置好环境 三.下载Eclipse软件 四.下载Node.js 下载地址:https://node ...

  2. Liferay环境搭建、简单说明与相关资料

    Liferay环境搭建.简单说明与相关资料  2012年3月23日 简单说明 该教程为是我在工作交接时编制的文档的一部分,经过测试应该不会有大问题,但可能还是会有所遗漏,请留言指正,谢谢. 转载请注明 ...

  3. Vue前端环境搭建(最简单,最全)

    Vue前端环境搭建(最简单,最全) VS code下载 下载地址:https://code.visualstudio.com/ node下载 v14.15.4 版本过高不兼容部分插件,v14.15.4 ...

  4. 8、Hive数据仓库——环境搭建及简单使用

    文章目录 Hive数据仓库--环境搭建及简单使用 Hive的安装和使用 一.Linux的JDK的安装 (已经安装过JDK可以跳过此步骤) 二.离线安装MySQL(已经安装过MySQL可以跳过此步骤) ...

  5. linux/window 下 solr5.1 tomcat7.x 环境搭建即简单功能测试

    2019独角兽企业重金招聘Python工程师标准>>> 之所以想使用solr来进行学习,很大一部分原因就是,solr能够在某种程度上提供RESTFUL相关的URL请求连接,可以把它理 ...

  6. Python环境搭建以及简单入门介绍

    Python简介 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 现在,全世界差不多有600多种编程 ...

  7. 微信小程序之json-server环境搭建及简单操作

    学习视频:https://www.bilibili.com/video/BV1Gv411g7j6?p=81 模板 以精选文章为主 app.json里面写上路径 定义模板 在index.wxml中复制以 ...

  8. tinygo的windows环境搭建及简单例程

    windows 环境搭建 安装 g 这里还是推荐g这个 go 的多版本管理工具,类似 NodeJS 的 nvm,Python 的 virtualenv. 官网下载: https://github.co ...

  9. [IOT从0到1]硬件测试环境搭建及简单分析

    环境搭建 我分别在Ubuntu16 Ubuntu18 和Ubuntu 20 上进行环境搭建 但是都多多少少出现了问题 最后直接选择下载集成过后的操作系统 =-= (17条消息) Attify OS1. ...

最新文章

  1. 将txt文件和excel文件导入SQL2000数据库
  2. slf4j 和 log4j合用的(Maven)配置
  3. 嵌入式系统中进程间通信的监视方法
  4. php 一年中所有的天,PHP获取一年中的每星期的开始日期和结束日期
  5. mysql存储过程queue_mysql – 在Sequelize中调用输入/输出类型存储过程
  6. Linux / 僵尸进程、孤儿进程 产生原因、有什么危害、如何预防(解决方案)
  7. Pod详解-生命周期-概述
  8. [实践系列]Promises/A+规范
  9. robotframework(12)修改用户密码(从数据库查询短信验证码)
  10. cell操作-matlab
  11. mysql多主单向环形_mysql多主单向--gt;环形同步_MySQL
  12. 论文学习16-Going out on a limb: without Dependency Trees(联合实体关系抽取2017)
  13. dubbo协议_Dubbo协议解析与OPPO自研ESA RPC框架实践
  14. 服务器 交换机的维护,服务器路由器交换机维护设置
  15. vector内存分配和回收机制
  16. 新风系统风速推荐表_谈实验室通风系统设计
  17. 解读基于数加的大数据仓库解决方案
  18. 计算机如何设置桌面文件筐,360安全桌面怎么设置文件筐 自定义分框其实非常简单...
  19. 一流程序员靠数学,二流程序员靠算法,低端看高端就是黑魔法!网友:我是七流靠复制
  20. 论文特色自我评价内容结构

热门文章

  1. CentOS6静态网络配置
  2. 云服务器重装系统后卡顿,低延迟云服务器发生卡顿丢包检测方法
  3. linux烧录,新人求教,怎么烧录Linux系统到一个小芯片上?
  4. mediarecorder添加时间戳_[Paper] 自动驾驶中相机和激光雷达的时间戳误差标定
  5. java lock的原理,Java中Lock原理探究
  6. java中单例实现常用的方式_Java单例的常见形式
  7. excel的if函数中android,excel中if函数嵌套式使用教程
  8. UVA11732 strcmp() Anyone?
  9. Airbnb改进部署管道安全性,规范部署顺序
  10. Dart In Action -Dart快速入门(二)