`
EdgenHuang
  • 浏览: 109869 次
  • 性别: Icon_minigender_1
  • 来自: 福建泉州
社区版块
存档分类
最新评论

JSON-RPC-Java 指南(从51cto移过来)

阅读更多
第一次翻译E文, 请指点.
 
        本指南简单地介绍一下如何利用 Ant 生成 JSON-RPC-Java, 然后, 介绍如何在你的 Web 项目中通过 JSON-RPC-Java 和 浏览器端引入的 JSON-RPC 的 javascript  来调用 Java 服务器端应用程序发布的对象方法.
        
需求:
 
        ant 1.6 或 更高的版本(用来生成JSON-RPC-Java) 
        Java Servlet 容器(比如: Apache Tomcat, JBoss)
 
生成包:
 
       在解压下载下来的 JSON-RPC-Java  发布包后, 到解压目录下找到 build.xml, 并且修改 "tomcat" 属性修改成如下:
    <property name="tomcat" location="/opt/jakarta-tomcat-5.5.7"/> 
 
       然后, 就在该目录下运行 Ant 来生成 jsonrpc.jar, 如下:
   ../opt/jakarta-tomcat-5.5.7> ant
 
   生成的这个 jsonrpc.jar 包就包含了用来接收客户端的 JSON-RPC 请求的 JSONRPCServlet 和用来解码和分派请求到你的 Java 代码的 JSONRPCBridge bean,
( JSONRPCBridge bean 需要在你的 JSP 或 Servlet 中创建).
 
生成 Demos:
    
       运行如下命令生成  JSON-RPC-Java  的 demo, 生成的包名为jsonrpc.war:
       ../opt/jakarta-tomcat-5.5.7>  ant test.dist
 
       如果是要直接安装 demo 到 tomcat 应用目录下, 运行如下命令:
       ../opt/jakarta-tomcat-5.5.7>  ant install
 
       打开浏览器出入 [url]http://localhost:8080/jsonrpc/[/url] 开始体验吧!
 
JSONRPCServlet:
 
   这个 Servlet 相当于 JSON-RPC-Java 应用的传送器, 它处理到服务端的 JSON-RPC (也是通过 HTTP 请求)并且将请求分发到我们在 HttpSession 中注册的 JSONRPCBridge 对象实例.
 
配置JSONRPCServlet:
 
   在 web.xml 中增加如下的配置段(标为蓝色的):
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  ...


  <servlet>
    <servlet-name>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-name>
    <servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-name>
    <url-pattern>/JSON-RPC</url-pattern>
  </servlet-mapping>
  ...
</web-app>
 
 
JSONRPCBridge:
 
   这个 bena 持有"输出对象"列表并将请求解码以调用这些对象的方法.
  
   JSONRPCBridge 实例只要在 HttpSession 中注册为 "JSONRPCBridge" 属性, JSONRPCServlet 就可以定位到它同时调用它了.
  
   也可以注册特殊的 JSONRPCBridge 来提高应用的安全性(只允许特定的用户特定的"输出对象"的特定方法), 这样你就可以在用户通过了你的应用的验证后才允许他访问你的"输出对象"的方法.(请参考此  手册 ).
 
在 JSP 中使用的 JSONRPCBridge:
 
   创建实例:
   ...
   <jsp:useBean id="JSONRPCBridge" scope="session"
                class="com.metaparadigm.jsonrpc.JSONRPCBridge" />
   ...
 
   注册"输出对象"
   ...
   <% JSONRPCBridge.registerObject("myTestObject", aTestObject); %>
   ...
 
   应用 javascript 脚本
   ...
   <script type="text/javascript" src="jsonrpc.js">
   <script type="text/javascript" src="myapp.js">
   ...
 
   这样我们就使得注册为 "myTestObject" 的 aTestObject 对象的所有方法都可以被浏览器端访问了, 参考  hello.jsp .
 
 
在 Servlet 中使用的 JSONRPCBridge:
 
   创建实例:
    ...
    // Find the JSONRPCBridge for this session or create one
    // if it doesn't exist. Note the bridge must be named "JSONRPCBridge"
    // in the HttpSession for the JSONRPCServlet to find it.
    HttpSession session = request.getSession();
    JSONRPCBridge json_bridge = null;
    json_bridge = (JSONRPCBridge) session.getAttribute("JSONRPCBridge");
    if(json_bridge == null) {
        json_bridge = new JSONRPCBridge();
        session.setAttribute("JSONRPCBridge", json_bridge);
    }
    ...
 
   注册"输出对象"
   ...
   json_bridge.registerObject("myTestObject", aTestObject);
   ...
  
   应用 javascript 脚本
   ...
   out.println("<script type=\"text/javascript\" src=\"jsonrpc.js\"></script>");
   out.println("<script type=\"text/javascript\" src=\"myapp.js\"></script>");
   ...
 
范例:
 
  
onLoad = function()
{
    try {
	jsonrpc = new JSONRpcClient("/<your webapp name here>/JSON-RPC");
        // Call a Java method on the server
        var result = jsonrpc.myTestObject.myFunction("hello");
        alert(result);
    } catch(e) {
	alert(e);
    }
}

分享到:
评论

相关推荐

    JSON-RPC-Java实例

    JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...

    JSON-RPC for Java.src 2.0

    1. "JSON-RPC for Java使用说明.doc":这是关于如何使用该框架的文档,通常会包含安装步骤、配置指南、API参考和示例代码等。 2. "JSON-RPC.jar":这是编译后的Java库文件,包含了JSON-RPC for Java的核心组件,可以...

    json-rpc-java-1.0.zip

    通过这个“json-rpc-java-1.0.zip”包,你可以深入学习JSON-RPC的工作原理,掌握在Java环境下如何有效地使用JSON-RPC来构建分布式系统。同时,理解JSON-RPC与其他通信协议(如RESTful API)的差异,有助于选择更适合...

    json-rpc-for-java

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

    android-json-rpc

    "android-json-rpc"正是这样一款专为Android平台设计的JSON-RPC库,它简化了开发者在Android应用程序中执行JSON-RPC服务调用的过程。 该库的核心特性包括: 1. **简单易用的API**:android-json-rpc提供了一个直观...

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

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

    json-rpc-java-1.0源代码

    本项目"json-rpc-java-1.0"提供了JSON-RPC的Java实现,包含`jsonArray`和`jsonObject`等关键组件。 1. JSON基础知识: JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它的基本...

    json-rpc.jar 和 jsonrpc.js

    JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...

    JSON-RPC for Java使用说明

    JSON-RPC(JavaScript Object Notation Remote ...总之,JSON-RPC for Java提供了在Java环境中使用JSON进行远程调用的能力,通过学习和实践提供的文档和示例,你可以掌握如何在自己的项目中有效地应用JSON-RPC技术。

    JSON-RPC for Java使用说明.doc

    JSON-RPC for Java 使用说明 JSON-RPC(JavaScript Remote Procedure Call)是一种轻量级的远程过程调用(RPC)协议,允许在不同语言和平台之间进行数据交换。以下是 JSON-RPC for Java 使用说明的知识点总结: ...

    json-rpc-java-talk-20050225.pdf

    ### JSON-RPC-Java在构建下一代Web应用中的应用 #### 概述 在2005年的演讲中,Michael Clark探讨了如何利用JSON-RPC-Java来构建高度动态的Web应用程序。这一技术允许开发人员通过JavaScript透明地调用远程Java方法...

    Json-RPC for java Example

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

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

    本压缩包“java开发常用jar包之json-rpc.rar”包含了与JSON-RPC相关的Java库,便于开发者集成到他们的项目中。 一、JSON-RPC协议 1. JSON-RPC简介:JSON-RPC是一种基于JSON的RPC协议,它定义了如何通过HTTP或其他...

    json-rpc-1.0(with source).rar

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。JSON-RPC 1.0是该协议的一个早期版本,它允许客户端和...

    JSON-RPC 2.0 规范(中文版)

    ### JSON-RPC 2.0 规范解析 #### 概述 JSON-RPC 2.0 是一种无状态、轻量级的远程过程调用(RPC)协议,旨在简化跨网络的应用通信流程。该规范定义了一系列数据结构及处理规则,以支持不同消息传输环境(如基于 ...

    Java框架JSON-RPC项目demo代码实战

    JSON-RPC(JavaScript ...通过这个实战项目,你可以深入理解JSON-RPC的工作机制,掌握Java中JSON-RPC框架的使用,并学习如何构建一个完整的JSON-RPC服务。同时,这也会帮助你提升在分布式系统中解决实际问题的能力。

    json-rpc-1.0.zip

    这个"json-rpc-1.0.zip"压缩包包含了一个Java实现的JSON-RPC 1.0版本的库,主要用于在Java应用程序中处理JSON数据并实现远程调用功能。 在Java中,JSON-RPC库允许开发者通过HTTP或WebSocket等协议,将JSON格式的...

    使用JSON-RPC

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Web服务和分布式系统中,JSON-RPC提供了一种简单的方式...

    国人写的json-rpc-java的例子及jar包

    在这个场景中,我们关注的是JSON-RPC在Java平台上的实现,特别是由国人编写的JSON-RPC Java库。 标题提到的“国人写的json-rpc-java的例子及jar包”,表明这是一个由国内开发者创建的JSON-RPC客户端和服务端的Java...

    json-rpc-python

    JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Python中,json-rpc-python库提供了一种方便的方式...

Global site tag (gtag.js) - Google Analytics