注意:要事先将jsonrpc.jar和jsonrpc.js放到相关目录下
1.TestBean.java
package com.bean;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestBean {
public String sayHello(String name){
return name+"你好!";
}
public String citcleArea(double r,String unit){
DecimalFormat dfmormat = new DecimalFormat("####.00");
return dfmormat.format(r*r*Math.PI)+"平方"+unit;
}
public String serviceDate(){
Date date = new Date();
SimpleDateFormat sfd = new SimpleDateFormat("yyyy年mm月dd hh:mm:ss");
return sfd.format(date).toString();
}
public String[][] stringArray(int row,int col){
String[][] array = new String[row][col];
for(int i = 0 ; i <row;i++){
for(int j = 0 ; j < col; j ++){
array[i][j] = "第"+(i+1)+"行,第"+(j+1)+"列";
}
}
return array;
}
}
2.index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:useBean id="JSONRPCBridge" scope="session"
class="com.metaparadigm.jsonrpc.JSONRPCBridge" />
<jsp:useBean id="testBean" class="com.bean.TestBean" />
<%
JSONRPCBridge.registerObject("testBean",testBean);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<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">
<script type="text/javascript" src="jsonrpc.js">
</script>
<script type="text/javascript">
jsonrpc = new JSONRpcClient("JSON-RPC");
function callServer() {
myName = document.getElementById("myName").value;
if (myName == "") {
window.alert("请输入姓名!");
return;
}
window.alert(jsonrpc.testBean.sayHello(myName));
}
function callc() {
var radius = document.getElementById("radius").value;
var unit = document.getElementById("unit").value;
if (radius == "") {
window.alert("请输入半径!");
return;
}
if (unit == "") {
window.alert("请输入单位!");
return;
}
var result = jsonrpc.testBean.citcleArea(radius, unit);
document.getElementById("area").value = result;
}
function getNow() {
var result = jsonrpc.testBean.serviceDate();
document.getElementById("now").value = result;
}
function createTable() {
var rows = document.getElementById("rows").value;
var columns = document.getElementById("columns").value;
if (rows == "") {
window.alert("请输入行数!");
return;
}
if (columns == "") {
window.alert("请输入列数!");
return;
}
var result = jsonrpc.testBean.stringArray(rows, columns);
for ( var i = 0; i < result.length; i++) {
tableRow = document.getElementById("table1").insertRow(-1);
for ( var j = 0; j < result[i].length; j++) {
tableCell = tableRow.insertCell(-1);
tableCell.innerHTML = result[i][j];
}
}
}
</script>
</head>
<h2>
json-rpc实例
</h2>
<hr>
请输入姓名:
<input type="text" id="myName">
<input type="button" value="问好" onclick="callServer();">
<br>
<br>
请输入圆的半径:
<input type="text" id="radius" size="6">
单位:
<input type="text" id="unit" size="4">
面积为:
<input type="text" id="area" readonly="true" size="12">
<input type="button" value="计算" onClick="callc()">
<br>
<br>
服务器当前时间:
<input type="text" id="now" readonly="true" size="30">
<input type="button" value="取得时间" onClick="getNow()">
<br>
<br>
请输入表格的行列数:
<input type="text" id="rows" size="4">
行
<input type="text" id="columns" size="4">
列
<input type="button" value="生成表格" onClick="createTable()">
<br>
<table id="table1" border="1" width="500" bgcolor="#eeeeee"></table>
<br>
<body>
</body>
</html>
3.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>JSONRPCServlet</servlet-name>
<servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JSONRPCServlet</servlet-name>
<url-pattern>/JSON-RPC</url-pattern>
</servlet-mapping>
</web-app>
分享到:
相关推荐
压缩包内的"说明.txt"可能是项目文档的一部分,详细解释了如何使用jsonrpc-frontend库,包括安装步骤、API接口、示例代码等。而"jsonrpc-frontend-master"则可能是一个Git仓库的克隆,包含了源代码、示例、测试用例...
使用"jsonrpc-c-master"进行开发通常包括以下几个步骤: 1. **理解库API**: 阅读库的头文件和文档,了解如何初始化服务器、注册处理函数、接收和发送JSON-RPC消息。 2. **实现业务逻辑**: 编写处理特定RPC方法的函数...
2. **方法调用**:JSONRPC使用函数调用语义,而RESTful基于HTTP方法(GET、POST等),前者更直观,后者更符合Web原则。 3. **错误处理**:JSONRPC内置错误处理机制,RESTful需要自定义错误响应。 4. **版本控制**:...
JsonRPC, 简单的Json RPC PHP客户机/服务器只 JsonRPC PHP客户端和服务器一个简单的json rpc客户机/服务器。 特性仅限 json rpc 2.0服务器支持批处理请求和通知基于身份验证和IP的客户端限制自定义中间件完全单元...
<artifactId>jsonrpc4j <version>1.5.0 <groupId>javax.portlet <artifactId>portlet-api <version>2.0 Service代码: @JsonRpcService("/member") public interface MemberService { ... } 因为是基于...
JSONRPC(JSON Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。JSON因为其简洁、易于理解和解析的特性,广泛应用于网络通信和数据交换。JSON...
使用`jsonrpc-1.0.jar`,开发者可以创建一个JSON-RPC服务器,暴露一组可调用的方法供客户端访问。同时,客户端可以使用此库构造JSON-RPC请求并解析服务器的响应。这个库简化了处理JSON-RPC交互的过程,避免了手动...
之后,引入 `jsonrpc.js`,这样 JavaScript 就能使用 JSON-RPC 功能了。 4. **准备服务器端 JavaBean**:编写你需要暴露给客户端调用的 JavaBean 或服务类。这些类的方法将成为 JavaScript 中可以调用的远程方法。 ...
使用这个客户端,你可以像调用本地方法一样调用远程服务,JSONRPC4J会自动处理请求的构建和响应的解析。 7. **错误处理和异常转换** JSONRPC4J支持错误码和错误消息的传递,当服务端抛出异常时,客户端可以通过...
import fastapi_jsonrpc as jsonrpc from pydantic import BaseModel from fastapi import Body app = jsonrpc . API () api_v1 = jsonrpc . Entrypoint ( '/api/v1/jsonrpc' ) class MyError ( jsonrpc . Base...
scrapy-jsonrpc, Scrapy对使用 JSON RPC控制spider的扩展 爬虫 jsonrpcScrapy jsonrpc是一个扩展,通过 json rpc控制一个正在运行的爬虫网络爬虫。 服务通过协议提供对Crawler对象的访问。安装使用 pip 安装 scrapy-...
你提供的"JsonRpc.rar"包含了C++实现的JSON-RPC封装,下面我们将深入探讨这个主题。 1. **JSON-RPC基本概念**: JSON-RPC允许客户端通过发送JSON格式的数据到服务器,请求执行特定的方法,并可能接收到响应结果。...
1. **安装依赖**:首先,你需要安装 Laravel JSON-RPC 的服务提供者,如 `swooletw/laravel-jsonrpc`。通过 Composer 安装: ``` composer require swooletw/laravel-jsonrpc ``` 2. **配置服务提供者**:在 `...
总的来说,JSONRPC4J是一个强大且易于使用的工具,可以帮助Java开发者轻松地实现在不同系统间进行JSON-RPC通信。通过这个压缩包提供的jar、源码和API文档,开发者可以迅速集成和利用JSONRPC4J,提升项目的跨系统通信...
jsonrpc所需要的jar包,包括jackson-annotations-2.3.0.jar,jackson-core-2.5.4.jar,jackson-databind-2.6.2.jar,jsonrpc4j-1.0.jar
当我们将Jsonrpc4j与Spring结合使用时,我们可以利用Spring的自动化配置能力来简化Jsonrpc4j的集成过程,从而更高效地构建分布式系统。 首先,让我们深入理解Jsonrpc4j的核心概念。JSON-RPC是一种轻量级的远程调用...
Test-Jsonrpc是一个专门用于测试JSON-RPC接口的工具,主要针对JavaScript开发者,它可以帮助开发者验证JSON-RPC服务的正确性,确保服务端提供的方法能够正确响应客户端的请求。 在JavaScript开发中,测试是保证代码...
例如,在Java中,有诸如jsonrpc4j这样的库,它提供了一套完整的解决方案,包括序列化、网络传输和处理等。在Python中,有像SimpleJSONRPCServer和jsonrpclib这样的工具。这些库通常都提供了简单的API,使得开发者...
在本文中,我们将深入探讨如何使用Go语言和jsonrpc库来构建一个基于Websocket的客户端,以便与服务端进行交互并处理接收到的通知消息。首先,让我们了解这些关键概念: 1. **Go语言(Golang)**:由Google开发的...
**PyPI 官网下载 | wsgi-jsonrpc-0.2.9pre.tar.gz** PyPI(Python Package Index)是Python社区广泛使用的软件包仓库,它提供了大量的...通过了解和熟练使用wsgi-jsonrpc,可以提升你的Python Web应用开发效率和质量。