转载 jsonrpc环境搭建和简单实例
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 |
|
代码分析:函数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环境搭建和简单实例相关推荐
- Appium+Java环境搭建及简单实例
Appium+Java环境搭建及简单实例 一.下载jdk并配置好环境 二.下载Android-sdk并配置好环境 三.下载Eclipse软件 四.下载Node.js 下载地址:https://node ...
- Liferay环境搭建、简单说明与相关资料
Liferay环境搭建.简单说明与相关资料 2012年3月23日 简单说明 该教程为是我在工作交接时编制的文档的一部分,经过测试应该不会有大问题,但可能还是会有所遗漏,请留言指正,谢谢. 转载请注明 ...
- Vue前端环境搭建(最简单,最全)
Vue前端环境搭建(最简单,最全) VS code下载 下载地址:https://code.visualstudio.com/ node下载 v14.15.4 版本过高不兼容部分插件,v14.15.4 ...
- 8、Hive数据仓库——环境搭建及简单使用
文章目录 Hive数据仓库--环境搭建及简单使用 Hive的安装和使用 一.Linux的JDK的安装 (已经安装过JDK可以跳过此步骤) 二.离线安装MySQL(已经安装过MySQL可以跳过此步骤) ...
- linux/window 下 solr5.1 tomcat7.x 环境搭建即简单功能测试
2019独角兽企业重金招聘Python工程师标准>>> 之所以想使用solr来进行学习,很大一部分原因就是,solr能够在某种程度上提供RESTFUL相关的URL请求连接,可以把它理 ...
- Python环境搭建以及简单入门介绍
Python简介 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 现在,全世界差不多有600多种编程 ...
- 微信小程序之json-server环境搭建及简单操作
学习视频:https://www.bilibili.com/video/BV1Gv411g7j6?p=81 模板 以精选文章为主 app.json里面写上路径 定义模板 在index.wxml中复制以 ...
- tinygo的windows环境搭建及简单例程
windows 环境搭建 安装 g 这里还是推荐g这个 go 的多版本管理工具,类似 NodeJS 的 nvm,Python 的 virtualenv. 官网下载: https://github.co ...
- [IOT从0到1]硬件测试环境搭建及简单分析
环境搭建 我分别在Ubuntu16 Ubuntu18 和Ubuntu 20 上进行环境搭建 但是都多多少少出现了问题 最后直接选择下载集成过后的操作系统 =-= (17条消息) Attify OS1. ...
最新文章
- 将txt文件和excel文件导入SQL2000数据库
- slf4j 和 log4j合用的(Maven)配置
- 嵌入式系统中进程间通信的监视方法
- php 一年中所有的天,PHP获取一年中的每星期的开始日期和结束日期
- mysql存储过程queue_mysql – 在Sequelize中调用输入/输出类型存储过程
- Linux / 僵尸进程、孤儿进程 产生原因、有什么危害、如何预防(解决方案)
- Pod详解-生命周期-概述
- [实践系列]Promises/A+规范
- robotframework(12)修改用户密码(从数据库查询短信验证码)
- cell操作-matlab
- mysql多主单向环形_mysql多主单向--gt;环形同步_MySQL
- 论文学习16-Going out on a limb: without Dependency Trees(联合实体关系抽取2017)
- dubbo协议_Dubbo协议解析与OPPO自研ESA RPC框架实践
- 服务器 交换机的维护,服务器路由器交换机维护设置
- vector内存分配和回收机制
- 新风系统风速推荐表_谈实验室通风系统设计
- 解读基于数加的大数据仓库解决方案
- 计算机如何设置桌面文件筐,360安全桌面怎么设置文件筐 自定义分框其实非常简单...
- 一流程序员靠数学,二流程序员靠算法,低端看高端就是黑魔法!网友:我是七流靠复制
- 论文特色自我评价内容结构
热门文章
- CentOS6静态网络配置
- 云服务器重装系统后卡顿,低延迟云服务器发生卡顿丢包检测方法
- linux烧录,新人求教,怎么烧录Linux系统到一个小芯片上?
- mediarecorder添加时间戳_[Paper] 自动驾驶中相机和激光雷达的时间戳误差标定
- java lock的原理,Java中Lock原理探究
- java中单例实现常用的方式_Java单例的常见形式
- excel的if函数中android,excel中if函数嵌套式使用教程
- UVA11732 strcmp() Anyone?
- Airbnb改进部署管道安全性,规范部署顺序
- Dart In Action -Dart快速入门(二)