`
dengyin2000
  • 浏览: 1212055 次
  • 性别: 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是一个基于Java的高性能开源RPC框架

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

    jsonRPC java远程调用 返回json

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

    Json-RPC for java Example

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

    JsonRPC, 简单的Json RPC PHP客户机/服务器只.zip

    JsonRPC, 简单的Json RPC PHP客户机/服务器只 JsonRPC PHP客户端和服务器一个简单的json rpc客户机/服务器。 特性仅限 json rpc 2.0服务器支持批处理请求和通知基于身份验证和IP的客户端限制自定义中间件完全单元...

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

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

    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", ...

    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, ...). *...

    jsonrpc4j+springboot+maven实例

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

    JSON-RPC-Java实例

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

    json-rpc.jar 和 jsonrpc.js

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

    java jsonrpc Server服务器

    java写的jsonrpc服务端,用到开源项目有 jsonrpc4j-0.27.jar,portlet-2.0.jar jackson-databind-2.2.3.jar jackson-core-2.2.3.jar JSON-RPC.jar 将这些开源项目整理成到自己的项目中

    jsonrpc4j整合Spring+Maven轻量级远程调用

    jsonrpc4j整合Spring+Maven轻量级远程调用

    java 使用json-rpc

    JSON-RPC+for+Java使用说明 json 直接远程访问java 方法

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

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

    JSONRPC+JSON+Java

    NULL 博文链接:https://customme.iteye.com/blog/743765

    json-rpc-for-java

    继《JavaScript高级应用与实践》之后推出的json-rpc-for-java开源代码,是仅仅100行的javascript代码和不到10个java文件实现的超级轻量级的通过 javaScript快速调用java对象并返回任意对象的轻量级框架,并且支持...

    Json-RPC的PHP扩展php-ext-JsonRPC.zip

    JsonRPC 2.0 Client and Server ============================= 轻量级 Json-RPC 2.0 客户端和服务端的php扩展,基于 multi_curl epoll的并发客户端,依据[jsonrpc](http://www.jsonrpc.org/)协议规范。 ...

    scrapy-jsonrpc, Scrapy对使用 JSON RPC控制spider的扩展.zip

    scrapy-jsonrpc, Scrapy对使用 JSON RPC控制spider的扩展 爬虫 jsonrpcScrapy jsonrpc是一个扩展,通过 json rpc控制一个正在运行的爬虫网络爬虫。 服务通过协议提供对Crawler对象的访问。安装使用 pip 安装 scrapy-...

    android-json-rpc

    android-json-rpc是一个在android程序中使用的JSON-RPC客户端类库。它提供了一个简单的API来执行JSON-RPC服务调用

    qt-jsonrpc-server-源码.rar

    qt-jsonrpc-server-源码.rar

Global site tag (gtag.js) - Google Analytics