`
zhaoshijie
  • 浏览: 2261581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascriptRPC

    博客分类:
  • JS
阅读更多
javascriptRPC使用方法

一、约束

1、不支持泛型

2、java服务类中的方法必须是public static 的 (可下载Test.rar 进行参照着写)

3、myeclipse下使用的时候一定注意jsp标头,必须是全英文的,看起来一样但是就是报错,重新写一遍即可。实在不行就下载 下面的src.rar  解压放到工程相应目录即可解决。

4、暂不支持中文(有中文乱码现象,可以自行解决)
5、配置文件位置

   1)默认会去src下找“rpc_config.xml”配置文件; 如:AJAXRPC_Server server = new AJAXRPC_Server();
   2)如果指定文件路径前面带“/” 斜杠,那么会去src下找;如:AJAXRPC_Server server = new AJAXRPC_Server("/test/rpc_config8.xml");
   3)如果指定文件路径前面不带“/” 斜杠,那么会去WEB-INF下找;如:AJAXRPC_Server server = new AJAXRPC_Server("test/rpc_config8.xml");


5、暂不支持中文 正在优化中。

****************************使用方法**********
二、使用方法

1、导入jar包“RPC-ZHAO-1.0.jar”(本文章自带所有资料,下载即可使用)

2、复制 “scripts”文件夹到 工程根目录下(里面放的是JS文件,不需要任何修改)

3、复制 “ajaxrpc”文件夹到 工程根目录下(里面放的是JSP文件,主要是加载配置文件用的,只需要在其中修改你的配置文件路径即可,路径问题可参照 上面 4 描述)

4、发布java服务,建立 rpc_config.xml放到 src目录下即可,也可参照 上面的4所描述,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<services>
<service id="Test" class="test.Test"/>
<service id="zhao" class="zhao.Zhao"/>
</services>

配置说明:每个java服务配置一个  service 标记,其中,id是在jsp(或html)里使用的名称,可以任意定义,class是java服务类全名(包+类名称)


5、加载rpc_config.xml配置文件

从下面下载“ajaxrpc.rer”并解压放到工程的根目录,分别打开两个jsp,修改配置文件位置即可,如:Script.jsp 打开后显示如下:
<%@ page import="org.ajaxrpc.*" %> 
<%
  HttpContext.setCurrent(request, response);
  AJAXRPC_Script script = new AJAXRPC_Script("rpc_config.xml");
  response.getWriter().write(script.getScripts());
%>


而你只需要修改 rpc_config.xml即可(改成你的实际位置和实际名称即可),你也可以这样配置:AJAXRPC_Script script = new AJAXRPC_Script(); 那么你就把rpc_config.xml放到src下即可(这样的话名称只能叫“rpc_config.xml”,因为这是默认的位置和名称)



6、jsp中使用方法下面是一个jsp例子:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="scripts/AJAXRPC.js" type="text/javascript"></script>
<script src="ajaxrpc/Script.jsp" type="text/javascript"></script>
<script type="text/javascript">
var client = new AJAXRPC_Client('ajaxrpc/Server.jsp');
var Test = client.Test;

var zhao = client.zhao;

function testzhao(){
    var dd = zhao.getMessage('赵士杰先生你好:你的测试成功了。');
    alert(dd);
}


function testDate(){
    var o = Test.getTime();
    alert(o);
}
function testNumber(){
    var o = Test.add(1, 10);
    alert(o);
}
function testString(){
    var o = Test.sayHello('world!');
    alert(o);
}
function testBoolean(){
    var o = Test.isTrue(true);
    alert(o);
    var o = Test.isTrue(false);
    alert(o);
}
function testObject(){
    var user = {
        id: null,
        name: 'ajaxrpc',
        birthday: new Date(),
        gender: 1       
    };
    var id = Test.addUser(user);
    alert(id);
}
function testArray(){
    var users = Test.getUsers('ajaxrpc');
    alert(users.length +":"+ users[0].name +":"+ users[users.length-1].name);
}
function testUserClass(){
    var user = {
        id: null,
        name: 'ajaxrpc',
        birthday: null,
        gender: 1       
    };
    user = Test.updateUser(user);
    alert(user.birthday);
}
function testUserClassArray(){
    var users = [];
    for(var i=0; i<20; i++){
        var user = {
            id: i,
            name: 'ajaxrpc'+i,
            birthday: new Date(),
            gender: i%2
        };   
        users.push(user);
    }
    var users = Test.saveUsers(users);
    alert(users.length +":"+ users[0].name +":"+ users[users.length-1].name);
}
</script>


  </head>
 
  <body>
  <input type="button" value="test Date" onclick="testDate()" /><br />
    <input type="button" value="testzhao" onclick="testzhao()" /><br />
    <input type="button" value="test Number" onclick="testNumber()" /><br />
    <input type="button" value="test String" onclick="testString()" /><br />
    <input type="button" value="test Boolean" onclick="testBoolean()" /><br />
    <input type="button" value="test Object" onclick="testObject()" /><br />
    <input type="button" value="test Array" onclick="testArray()" /><br />
    <input type="button" value="test User Class" onclick="testUserClass()" /><br />   
    <input type="button" value="test UserClass Array" onclick="testUserClassArray()" /><br />
  </body>
</html>




分享到:
评论

相关推荐

    jsonrpc:适用于Javascript的最小JSON RPC 2.0客户端库

    标题中提到的"适用于Javascript的最小JSON RPC 2.0客户端库"是指一个专门针对JavaScript环境设计的轻量级JSON-RPC 2.0实现。这种库通常具有以下特点: 1. **小体积**:由于目标是成为最小的客户端库,因此它的源...

    rpc:优雅的rpc机制

    优雅的 Javascript RPC 机制。 安装 npm install avs-rpc 在浏览器中: &lt; script src =" .../avs-rpc.min.js " &gt; &lt;/ script &gt; 用法 A 面需要 B 面做一些事情...... A面 首先,从库中创建一个 RPC ...

    rpcJS:一个简单的 RPC 服务器,内置 JavaScript,具有线程和攻击者检测功能

    rpcJS 是一个基于 JavaScript 实现的简单 RPC 服务器,它旨在为开发者提供一种轻量级、易用的方式来实现客户端与服务器之间的远程调用。下面将详细介绍 rpcJS 的核心特点和相关知识点。 首先,rpcJS 的内置 ...

    strawberrydonut-rpc:现在每个人都以此来推广草莓甜甜圈(?)

    【标签】:“JavaScript”标签表明这个项目是基于JavaScript语言开发的,因此我们可以推断这是一个与JavaScript相关的RPC库或框架,用于JavaScript开发者在进行分布式系统开发时进行跨进程通信。 【文件名称列表】...

    jsonrpc.js:JavaScript JSON RPC 客户端

    ##jsonrpc.js JSON RPC 客户端在 javascript 中的实现 ##用法 创建客户端对象 var client = new JSONRPC ( { host : "localhost:3001" } ) ; 其他可用选项 host : rpc host transport: used transport , ...

    基于PHP和JavaScript的RPC框架设计与实现源码

    该项目是一款基于PHP和JavaScript构建的RPC框架设计源码,包含1923个文件,涵盖1672个PHP文件、80个LESS样式文件、26个Markdown文件、20个JSON文件、16个XLIFF文件、14个PNG图片文件、10个CSS文件、10个JavaScript...

    使用thrift、websocket在javascript和cpp之间建立rpc调用

    使用thrift、websocket在javascript和c++之间建立rpc调用机制。 如果要使用js+html来写界面,cpp来写底层业务逻辑,这就非常有用了。 当然,如果底层不用cpp来写,也可以参考本代码的js对thrift的rpc包装。

    JSON RPC 2.0

    JSON RPC 2.0有多种编程语言的实现,如Python的`jsonrpc-server`和`jsonrpc-client`库,JavaScript的`jsonrpc-client`和`jsonrpc-server`模块,以及Java、C#等其他语言的相应实现。 通过理解和掌握JSON RPC 2.0,...

    ZMQom:通过 ZMQ 进行远程方法调用

    ZMQom 是一个基于 ZeroMQ(简称 ZMQ)的远程方法调用(Remote Procedure Call, RPC)框架,主要适用于 JavaScript 开发环境。ZeroMQ 是一个高性能、轻量级的消息传递库,它提供了多种消息模式,如发布/订阅、请求/...

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

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

    json-rpc.jar 和 jsonrpc.js

    JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在JBoss与其它J2EE应用服务器中因此可以在一个基于JavaScript与DHTML的Web应用程序中利用它来直接调用普通Java方法与EJB方法。我们可以很方便的使用JSON-RPC-...

    JSON-RPC-Java实例

    JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在JBoss与其它J2EE应用服务器中因此可以在一个基于JavaScript与DHTML的Web应用程序中利用它来直接调用普通Java方法与EJB方法。我们可以很方便的使用JSON-RPC-...

    rpc远程调用库C语言实现

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在C语言中,我们需要一个JSON库来处理JSON字符串的序列化和反序列化。例如,`jsonrpc-c`库就包含了...

    nodejs+jsonrpc

    标题 "Node.js + JSON-RPC" 涉及到的是使用JavaScript运行时环境Node.js来实现基于JSON-RPC(Remote Procedure Call)的通信协议。JSON-RPC是一种轻量级的远程调用协议,它允许客户端通过HTTP或其他传输协议向服务器...

Global site tag (gtag.js) - Google Analytics