json rpc java_json-rpc-java

首先下载json-rpc-java.zip包

解压过后:

1.把jsonrpc.js拷入到你的web项目下面

2.把jsonrpc-1.x.jar包拷入到你的WEB-INF下的lib文件夹下面。

在js页面的head中加入类似于下面的代码:

JSONRPCBridge.registerObject("bean",bean);

%>

解释:

.metaparadigm.jsonrpc.JSONRPCBridge它是指向package com.metaparadigm.jsonrpc下的JSONRPCBridge.class文件

2.指向你的用于接收jsonrpc请求的类文件

有了上面两个useBean的指向,那么,jvm就会通过反射来找到这两个类。

3.JSONRPCBridge.registerObject("bean",bean); 你把要接收jsonrpc请求类加载到jsonrpc的jdk中,这样它们就可以通信了。即可以直接通过jsonrpc来调用这个类里的方法,并得到返回值。

调用形式:

var jsonrpc=null;

window.onload = function(){

jsonrpc=new JSONRpcClient("JSON-RPC");

jsonrpc.bean.sayString(showName,"jsonrpc传递了");

};

解释:

1.jsonrpc=new JSONRpcClient("JSON-RPC"); 是实便化jsonrpc对象。因为在上面已经用了useBean指向的类,所以我们就可以通过它来直接操作.syspro.service.UserService这个类里面的方法了。

2. jsonrpc.bean.sayString(showName,"jsonrpc传递了"); 其中bean是

回调函数格式:

showName(name,exception){

//name是返回的值

//exception返回的异常

}

XML中的配置如下:

JSONRPCServlet

com.metaparadigm.jsonrpc.JSONRPCServlet

JSONRPCServlet

/JSON-RPC

在运行时可能出现的错:

The value for the useBean class attribute mypackage.validate is invalid(病态的).

没有找到class,查看你的class生成目录是否在web-inf下的classes中。

其它用例说明:

web.xml:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

JSONRPCServlet

com.metaparadigm.jsonrpc.JSONRPCServlet

JSONRPCServlet

/JSON-RPC

View Code

java类文件:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

package.syspro.service;importjava.io.Serializable;importjava.util.List;importjava.util.Map;importjava.util.Set;import.syspro.bean.UserBean;import.syspro.dao.UserDao;public class UserService implementsSerializable{private static final long serialVersionUID = 1L;privateUserDao userDao;publicString getNameById(String id){

userDao=newUserDao();

String name=userDao.getNameById(id);returnname;

}public ListgetNameList(){

userDao=newUserDao();

List list=userDao.getNameList();returnlist;

}public SetgetNameSet(){

userDao=newUserDao();

Set set=userDao.getNameSet();returnset;

}public MapgetNameMap(){

userDao=newUserDao();

Map map=userDao.getNameMap();returnmap;

}publicUserBean getUserById(String id){

userDao=newUserDao();

UserBean user=userDao.getUserById(id);returnuser;

}

}

View Code

show.js主要是js  处理如何调用jsonrpc 如何处理返回值的一些示例:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

//定义一个JSONRPC对象

varjsonrpc;

window.οnlοad=function(){

jsonrpc=new JSONRpcClient("JSON-RPC");

}//事件处理函数

functionsearch(){var userId=document.getElementsByName("userId")[0].value;if(userId==null||userId==""){

jsonrpc.userService.getNameList(showList);

jsonrpc.userService.getNameSet(showSet);

jsonrpc.userService.getNameMap(showMap);

}else{

jsonrpc.userService.getNameById(showName,userId);

jsonrpc.userService.getUserById(showUser,userId);

}

}//定义一个User类

functionUser(name,gender,age,phone,address,email){this.name=name;this.gender=gender;this.age=age;this.phone=phone;this.address=address;this.email=email;

}//返回List处理

functionshowList(result,exception){if(exception==null){if(result!=null){var list=result.list;var user=newUser();for(var i inlist){

user.name=list[i];

update(user);

}

}else{

alert("no result");

}

}else{

alert(exception.message);

}

}//返回Set处理

functionshowSet(result,exception){if(exception==null){if(result!=null){var set=result.set;var user=newUser();for(var value inset){

user.name=value;

update(user);

}

}else{

alert("no result");

}

}else{

alert(exception.message);

}

}//返回Map处理

functionshowMap(result,exception){if(exception==null){if(result!=null){var map=result.map;for(var key inmap){

fill(key,map[key]);

}

}else{

alert("no result");

}

}else{

alert(exception.message);

}

}//返回String处理

functionshowName(name,exception){if(exception==null){if(name!=null&&name!=""){var user=newUser();

user.name=name;

update(user);

}else{

alert("no result");

}

}else{

alert(exception.message);

}

}//返回JavaBean处理

functionshowUser(user,exception){if(exception==null){if(user!=null){

update(user);

}else{

alert("no result");

}

}else{

alert(exception.message);

}

}//更新表格

functionupdate(user){var table=document.getElementById("userTable");//在表格末尾插入一行

table.insertRow(-1);//获取当前表格的行数

var rows=table.rows.length;//在插入的一行插入7列

table.rows[rows-1].insertCell(-1);

table.rows[rows-1].insertCell(-1);

table.rows[rows-1].insertCell(-1);

table.rows[rows-1].insertCell(-1);

table.rows[rows-1].insertCell(-1);

table.rows[rows-1].insertCell(-1);

table.rows[rows-1].insertCell(-1);//填充数据

table.rows[rows-1].cells[0].innerHTML=rows-1;if(user.name!=undefined){

table.rows[rows-1].cells[1].innerHTML=user.name;

}if(user.gender!=undefined){

table.rows[rows-1].cells[2].innerHTML=user.gender;

}if(user.age!=undefined){

table.rows[rows-1].cells[3].innerHTML=user.age;

}if(user.birthday!=undefined){

table.rows[rows-1].cells[4].innerHTML=user.birthday;

}if(user.phone!=undefined){

table.rows[rows-1].cells[5].innerHTML=user.phone;

}if(user.address!=undefined){

table.rows[rows-1].cells[6].innerHTML=user.address;

}

}//填充下拉列表

functionfill(userName,userId){var userList=document.getElementById("userList");var option=document.createElement("option");

option.text=userName;

option.value=userId;for(var i=0;i

if(userList.options[i].value==option.value){return;

}

}//添加到下拉列表

userList.options.add(option);

}

View Code

jsp文件示例:主要是如何注册等

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

JSONRPC+JSON+Java

查询用户

用户列表编号姓名性别年龄生日电话地址

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值