安装:
安装很简单,首先当然是下载咯, http://www.coolcode.cn/?p=206 这里提供了3个下载地址,其中 CoolCode.CN 下载的始终是最新版本,Live-Share 上是特定的版本,Sf.net 上有所有发布的版本,不过只有 2.1-20060810 及其之后的版本才含有 PHPRPC for Java,所以,下载最新版本就可以了。
下载之后解压缩,你会发现所有语言的版本都有,并且按目录存放的,如果要用它作 Java 的 Ajax 编程,只需要 Java 版本和 js 版本就可以了。
首先要编译 Java 版本,这里提供了两种编译方式,一种是直接使用 JDK 编译,另一种是用 ant 编译,这两种编译方式都很简单,如果没有安装 ant,但是配置好了 JDK 的运行环境的话,直接进入 java 目录,键入 make 就可以编译完成了,不过这种方式只能在 Windows 下编译,因为没有提供 Linux 版本的 shell 脚本。如果安装了 ant 的话,就用 ant 方式编译,从命令行窗口进入 java 目录,键入 ant 就编译完成了,编译之后就会生成一个 phprpc.jar 的包,这种方式生成的 jar 包比较小,在各种系统下都可以运行,不过需要安装 ant,但我想用 Java 开发程序的同志应该都会用 ant 的吧。
先说如何建立一个 JSP 的 PHPRPC 服务器。
首先在 Tomcat(或者其它 J2EE 服务器) 的发布目录下,建立一个 WEB-INF 目录,在下面再建立一个 lib 目录,把 phprpc.jar 放在 lib 目录中就可以了。然后在发布目录下建立你要发布服务的 JSP 程序,文件名当然是任意的,这里我们就叫 server.jsp 吧:
<%@ page import="java.lang.*" %>
<%@ page import="org.phprpc.*" %>
<%
PHPRPCServer phprpc_server = new PHPRPCServer(request, response, session);
phprpc_server.add("min", Math.class);
phprpc_server.add(new String[] { "sin", "cos" }, Math.class);
phprpc_server.start();
%>
就这么简单,这样就可以通过 server.jsp 来把 java.lang.Math 类的 min,sin,cos 方法发布给客户端调用了。
如果你在浏览器里键入:http://localhost:8080/server.jsp ,回车之后看到:
phprpc_functions="YTozOntpOjA7czozOiJtaW4iO2k6MTtzOjM6InNpbiI7aToyO3M6MzoiY29zIjt9";
下面我们来看一下如何在 html 中用 js 调用这个服务。
首先把 js\compress\full 目录下的 phprpc_client.js 包含到你的 html 页面里来,这个压缩版本已经包含了所有的依赖程序,所以,你可以单独把它复制到任何目录下使用。
下面来建立一个 Html 页面试试吧:
<html>
<head>
<script type="text/javascript" src="phprpc_client.js"></script>
</head>
<body>min(<input id="a" type="text" />, <input id="b" type="text" />)
<input id="minbtn" type="button" value="=" /> <input id="c" type="text" /><script type="text/javascript">
var a = document.getElementById("a");
var b = document.getElementById("b");
var c = document.getElementById("c");phprpc_client.create(‘rpc_client‘);
rpc_client.use_service("http://localhost:8080/server.jsp");
document.getElementById("minbtn").onclick= function() {
if (rpc_client.ready) {
c.value = "loading...";
rpc_client.min(Number(a.value), Number(b.value), function (result) {
c.value = result;
});
}
else {
alert("RPC not ready, wait a moment, please!");
}
}
</script>
</body>
</html>
DWR 使用 servlet 发布服务,配置复杂。
PHPRPC for Java 可以直接使用 JSP 发布服务器,不需要任何配置文件的修改,配置简单。
DWR 的数据是明文传输,PHPRPC 内置加密传输机制,在调用时,可以已加密方式传输数据,这对于编写安全的 Ajax 程序更方便。
DWR 只能用于浏览器到服务器的调用,PHPRPC 可以在浏览器中调用服务器上的服务,还可以在任何的 Java 程序中调用服务器端的服务。还可以在 Java 程序中调用任何其它语言编写的 PHPRPC 服务,还可以在任何其它语言的 PHPRPC 客户端中调用 PHPRPC for Java 服务器发布的服务。这一点 PHPRPC 更像 Web Service。但 PHPRPC 发布的服务程序不需要以任何特殊的方式编写,即使系统的类的方法都可以直接发布。
联系客服