JSON-RPC-Java学习之JSON-RPC specifications

   这几天在学习JSON-RPC协议,觉得其比较好用,就根据其中的英文文档作了一些笔记,以供参考。
   JSON-RPC协议是一种远程过程调用协议,其设计的目的就是为了简化处理。常规的处理机制是在两个对等
通信实体之间建立点对点的数据连接,在连接的生命周期内一方可能调用另一方提供的方法,为了调用一个远程
方法必须发送一个请求,而服务器端必须回答一个与该请求相对的响应除非这个请求是一个通知。
    1.1 request (method invocation)
        客户端通过向远程服务发送一个请求的方式来实现对远程方法的调用,而这个请求是一个由JSON协议串行
化的对象,含有下面三个属性:

        ·method:被调用方法名;

        ·params:被调用方法的参数列表;

        ·id           :请求id,可以是任何类型,用于与响应匹配。

     1.2 response

        当方法调用完成后,服务器必须给出一个响应,而这个响应也是一个有JSON协议串行化的对象,其含有三个属性:

        ·result:是一个由被调用方法返回的对象,如果错误调用方法时,则其值为null;

        ·error  :如果没有错误调用方法,则其值为null;

         ·id        :与要响应的请求的id相同。

     1.3 notification

        一个notification请求是一个没有响应的特殊的请求,其也是由JSON协议串行化的对象,含有和一般请求相同的属性,但是其id应为null。

       2.1JSON-RPC over Stream Connection

       该规范不需要特定的传输协议,而鼓励使用TCP/IP进行流的传输。任何时候都可以在传输实体间进行传送系列化的请求和响应对象,对于除了notification请求之外的所有请求,通信的另一端都要给出一个响应。一个不合法的请求或响应都会造成关闭双方的连接,而其又会在通信的每一端因为未响应的请求产生异常。

      2.2JSON-RPC over HTTP

      对HTTP作一定的修改后,其也可用于和服务进行通信。客户端可以发送一个或多个请求到服务端,所有的请求都必须作为包含所有系列化请求对象的HTTP POST对象发送,回答必须包含为所有请求的响应的系列化响应对象,nofification可以由客户端或服务器端发出。

      同样,一个不合法的请求会造成连接的断开,一个不合法的响应也会在客户端为所有未回答的请求产生异常,关闭连接也会在客户端为所有未回答的请求产生异常。

      3. JSON Class hinting

        JSON对象的格式:

          {"jsonclass":["constructor",[param1,],"prop1":...]}

         

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持的浏览器 IE6、IE7、IE8、FireFox?()、Opera()、Safari()、Google Chrome()等等 异步调用支持传入复合对象作为异步方法的参数 工程svn下载地址 http://json-rpc-for-java.googlecode.com/svn/trunk/ 示例工程下载地址 测试环境:MyEclipse?、Jre1.4、tomcat 5.0 如果你要测试,可以采用相应的环境,不一定要那么高版本的环境 http://json-rpc-for-java.googlecode.com/files/JsonRpcExample2008-08-05.rar 概述 json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript?编程,就可以通过javascript调用被注册的java对象并返回java对象,如果被返回的对象 还有方法,这个在javascript中返回的java对象的变量,你还可以继续调用它的方法.....这就是这个轻 量级json-rpc-for-java的神奇之处。 当返回的是java对象List的时候,在javascript中体现为ArrayList?,如果是Map,着体现为js中的 Object,其他的和java中的调用基本相同。 特殊的地方是,通过JS调用java对象方法的时候只能传入简单类型的参数,比 如:String,int,float,long、Object(对应javajavabean或map)等。 json rpc for java的使用 请从http://code.google.com/p/json-rpc-for-java/downloads/list 下载 调用未注册和配置的类方法 1、 首先,被调用的类需要继承jcore.jsonrpc.common.JsonRpcObject?或实现接口jcore.jsonrpc.common.face.IjsonRpcObject?,并有默认的构造函数; 例如: package test.rpc; import jcore.jsonrpc.common.JsonRpcObject; public class MyTestRpc extends JsonRpcObject { /** * 调用:rpc.getRpcObj('test.rpc.MyTestRpc').getTestMsg() * @return */ public String getTestMsg() { return "噢,成功了!"; } } 2、 JSP的JavaScript?中调用的方式,例如:alert(rpc.getRpcObj('test.rpc.MyTestRpc?').getTestMsg()); 最新的资源,请到http://code.google.com/p/json-rpc-for-java/source/browse/#svn/trunk进行免费下载

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值