`
dengyin2000
  • 浏览: 1225081 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSON RPC call remote methods in a Java Application Server, 轻

阅读更多
JSON RPC JAVA 使在javascript中直接调用Java Class,而且可以hand到Java Class的返回值。然后你可以用返回的值去填充Html。

JSONRPCBridge 这个是连接JSONRPC Client和我们Server端的桥梁,我们需要把我们想要调用的Server端的OBject注册到Bridge,在应用程序中我们通常注册到JSONRPCBridge.getGlobalBridge()中, 这是一个单例,我们程序都share这个类,还有一种做法是每次请求都create一个JSONRPCBridge然后把这个放到session,单我觉得没有必要这样做,直接用JSONRPCBridge.getGlobalBridge()就行了。

JSONRPCBridge.getGlobalBridge().registerObject("myObject", myObject);

注册之后我们就能在client使用javascript调用这个myObject了。

var jsonrpc = new JSONRpcClient("/webapp/JSON-RPC/");

Synchronous calls

jsonrpc.myObject.echo("hello");

Asynchronous calls

jsonrpc.test.echo(cb, "hello");

function cb(result, exception) {
if(exception) { alert(exception.message); }
// do stuff here ...
}

我们可以在cb函数中多返回值result进行处理。

其实JSON RPC JAVA的运行原理还是比较容易理解的,把需要调用的对象注册到JSONRPCBridge中,然后JSONRpcClient使用XMLHTTPRequest发送一些规则信息到JSONRPCServlet,JSONRPCServlet根据那些规则然后去调用注册到JSONRPCBridge中对象的方法,然后在把返回值response给JSONRpcClient,然后你就可以调用cb函数去处理其中的result了。但是我们知道这里的result已经是javascript中对应的对象了 int, array。。JSON RPC JAVA是怎样处理的呢?com.metaparadigm.jsonrpc.JSONSerializer com.metaparadigm.jsonrpc.Serializer 他们负责把一些规则的string在javascript中转换成在java中使用的对象,把一些java对象转换成javascript中的对象。JSON RPC JAVA中内置了一些Serializer。请看JSONSerializer.registerDefaultSerializers()方法。

public void registerDefaultSerializers()
throws Exception
{
registerSerializer(new BeanSerializer());
registerSerializer(new ArraySerializer());
registerSerializer(new DictionarySerializer());
registerSerializer(new MapSerializer());
registerSerializer(new SetSerializer());
registerSerializer(new ListSerializer());
registerSerializer(new DateSerializer());
registerSerializer(new StringSerializer());
registerSerializer(new NumberSerializer());
registerSerializer(new BooleanSerializer());
registerSerializer(new PrimitiveSerializer());
}

当然你也可以自己写些自定义的Serializer,具体请看文档。

现在项目中是把JSON RPC JAVA注册一些由Spring管理的对象。这样其实我们就需要在Spring注册ApplicationContext到ServletContext后再把里面的一些对象注册到JSONRPCBridge.getGlobalBridge(), 然后我们就可以在任何的html页面中调用那些对象。

 

分享到:
评论

相关推荐

    JSONRPC+JSON+Java

    JSONRPC(JSON Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。JSON因为其简洁、易于理解和解析的特性,广泛应用于网络通信和数据交换。JSON...

    jsonrpc-frontend:前端应用程序发送 json-rpc 请求进行测试

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,常用于客户端-服务器通信,特别是在Web应用中。它利用JSON作为数据交换格式,因为JSON易于阅读、编写,并且对机器...

    jsonrpc-c-master 基于 json rpc 1.0 纯C开发的服务端代码和示例

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。基于JSON-RPC 1.0的C语言实现,如"jsonrpc-c-master...

    jsonrpc是一个基于Java的高性能开源RPC框架

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Java世界中,JSON-RPC作为一个高性能的开源RPC框架...

    jsonRPC java远程调用 返回json

    jsonRPC java远程调用(请求) 返回json

    jsonrpc-1.0.jar

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,主要用来在客户端和服务器之间进行数据交换。它的设计思想是简单、直接,以JSON(JavaScript Object Notation)作为...

    Json-RPC for java Example

    json-rpc-for-java,是仅仅不到100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持级联调用,也就是说不需要额外 的JavaScript编程,...

    jsonrpc4j+springboot+maven实例

    <artifactId>jsonrpc4j <version>1.5.0 <groupId>javax.portlet <artifactId>portlet-api <version>2.0 Service代码: @JsonRpcService("/member") public interface MemberService { ... } 因为是基于...

    java 使用json-rpc

    JSON-RPC for Java是一种基于JSON(JavaScript Object Notation)协议的远程过程调用(Remote Procedure Call)框架,它允许客户端通过网络调用服务器上的方法,实现了客户端与服务器端的轻量级通信。本文将详细解释...

    JSONRPC

    JSONRPC(JSON Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在JAVA WEB开发中,JSONRPC常被用来实现客户端和服务端之间的通信,尤其在...

    springboot jsonrpc server

    非常适合java springboot好用的jsonrpc服务。 客户端调用: Content-Type:application/json {"id":"1","jsonrpc":"2.0","method":"multiplier","params":[5,8]} 服务端返回:{ "jsonrpc": "2.0", "id": "1", ...

    jsonrpc4j-0.27(包含jar,sources,javadoc)

    JSONRPC4J是一个Java库,专门用于实现JSON-RPC(JSON Remote Procedure Call)协议。JSON-RPC是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式,使得不同系统之间的通信...

    android-json-rpc

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,常用于客户端-服务器通信。在Android开发中,有时我们需要与远程服务器进行数据交互,这时JSON-RPC客户端库就显得尤...

    JsonRpc-Cpp

    JsonRpc-Cpp provides a JSON-RPC class called Json::Rpc::Handler that contains RPC methods, check incoming JSON-RPC message, * reply either with success or error code (in case parsing failed, ...). *...

    JSON RPC 2.0

    JSON RPC(Remote Procedure Call)是一种轻量级的远程调用协议,主要应用于分布式系统中,使得客户端能够像调用本地函数一样调用远程服务器上的函数。JSON RPC 2.0是该协议的一个重要版本,它在JSON RPC 1.0的基础...

    java开发常用jar包之json-rpc.rar

    JSON-RPC是一种轻量级的远程过程调用(Remote Procedure Call)协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Java开发中,JSON-RPC库可以帮助开发者实现客户端和服务端之间的通信,尤其在...

    ajax jsonrpc包的使用

    JSON-RPC 是一种轻量级的远程过程调用(Remote Procedure Call)协议,它使用 JSON 格式作为数据交换格式,使得客户端与服务器之间的通信更加简单、高效。在 Web 开发中,AJAX (Asynchronous JavaScript and XML) ...

    JSON-RPC for Java使用说明

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Java环境中,JSON-RPC允许应用程序通过网络调用其他...

    PyPI 官网下载 | wsgi-jsonrpc-0.2.9pre.tar.gz

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON作为数据交换格式。wsgi-jsonrpc库是将这两个概念结合的工具,允许开发人员在Python Web应用中实现JSON-...

    JSON-RPC-Java实例

    利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在JBoss与其它J2EE应用服务器中因此可以在一个基于...

Global site tag (gtag.js) - Google Analytics