PHPRPC是面向服务的高性能远程过程调用协议。PHPRPC for java 是此协议的一种实现,详细请到官方看PHPRPC的介绍 ,以其它rpc协议的性能对比请:Java、PHPRPC、Hessian、Burlap、XML 序列化的效率对比 。以下只是试用下。

下载:PHPRPC 3.0.2 for Java , 解压到(如:f:/phprpc_3.0.2_for_java),然后双击make.bat生成服务与客户端,生成phprpc.jar和phprpc_client.jar两个jar,把phprpc.jar放到web项目的WEB-INF/lib目录下。

先写个模拟业务接口:Hello.java接口与其实现MyHello.java

  1. package com.chenlb.phprpc;
  2. /**
  3. * 业务接口
  4. *
  5. * @author chenlb 2009-2-22 下午08:06:13
  6. */
  7. public interface Hello {
  8. String say(String name);
  9. }
  1. package com.chenlb.phprpc;
  2. /**
  3. * 服务器的一个模拟任务
  4. *
  5. * @author chenlb 2009-2-22 下午08:05:42
  6. */
  7. public class MyHello implements Hello {
  8. public String say(String name) {
  9. return "Hello "+name;
  10. }
  11. }

服务端然后发布业务(被远程调用的):rpc.jsp,也可以用servlet发布服务

  1. <%@ page import="com.chenlb.phprpc.*" %>
  2. <%@ page import="org.phprpc.*" %>
  3. <%
  4. Hello hello = new MyHello();
  5. PHPRPC_Server phprpc_server = new PHPRPC_Server();
  6. phprpc_server.add(hello);
  7. phprpc_server.start(request, response);
  8. %>

当然要把Hello.class与Myhello.class放到web项目里,如WEB-INF/classes。

编写java客户端代码,试用:

  1. package com.chenlb.phprpc;
  2. import org.phprpc.PHPRPC_Callback;
  3. import org.phprpc.PHPRPC_Client;
  4. public class PhpRpcDemo {
  5. public static void main(String[] args) {
  6. PHPRPC_Client client = new PHPRPC_Client("http://localhost:8080/phprpc/rpc.jsp");
  7. Hello m = (Hello) client.useService(Hello.class);
  8. System.out.println(m.say("chenlb"));
  9. //也可以以 callback形式调用.
  10. client.invoke("say", new Object[] {"other"}, new PHPRPC_Callback() {
  11. public void handler(String result, Object[] args) {
  12. System.out.println("handler:");
  13. System.out.println(result);
  14. System.out.println("args:"+args[0]);
  15. System.out.println();
  16. }
  17. });
  18. }
  19. }

示例了两种使用方式,输出结果为:

Hello chenlb
handler:
Hello other
args:other

PHPRPC jsp发布服务的更多相关文章

  1. PHPRPC servlet发布服务

    1.服务端 web.xml PHPRPCDispacherServlet 2.客户端 controller层调用

  2. 13_CXF和Spring整合发布服务

    [服务端] 第一步:建立一个Web项目 第二步:填充CXF jar包 第三步:创建接口及服务类 [工程截图(对比之前的WebService_CXF_Server00)] [applicationCon ...

  3. SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)

    1转自:https://www.cnblogs.com/fanjb/p/10677018.html 8年进入国网项目后陆陆续续做了一些接口,按实现方法去分有RFC和代理类sproxy类型,按服务提供方 ...

  4. ServiceStack.Redis订阅发布服务的调用(Z)

      1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频 ...

  5. ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务

    1.       Arc catalog的配置 打开catalog,如图新增刚刚创建的server 1. Use GIS services: 用户身份连接 使用此种连接,可以浏览.使用站点内发布的所有 ...

  6. ServiceStack.Redis订阅发布服务的调用

    1.Redis订阅发布介绍 Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式. 发布者和订阅者之间使用频 ...

  7. jsp作为服务端,ajax请求回应

    刚学ajax,想以jsp作为服务端,来回应ajax的请求: 代码如下: <!DOCTYPE html> <html> <head lang="en"& ...

  8. jsp发布:Could not publish server configuration: null. java.lang.NullPointerException

    1.jsp发布: Could not publish server configuration: null. java.lang.NullPointerException

  9. ArcGIS发布服务时缓存切片设置

    [文件]>[共享]>[服务]>[覆盖原有服务]或[创建新服务] 设置好相关参数后,会弹出"服务编辑框": 进入"缓存" 1."绘制此 ...

随机推荐

  1. java中的static关键词

    以下来自:http://www.cnblogs.com/codc-5117/archive/2011/12/04/2275298.html Static基本规则:             (1)一个类 ...

  2. [BZOJ 3503][Cqoi 2014]和谐矩阵

    我觉得这一题的样例输出一点都不和谐,大家千万别像我一样被坑了…… 题目不算难,果然是进错省系列555,不过搞出 O(n*m*2m) 的还是不要挣扎的比较好 我们暴力地推出第 n 行 第 m 列中每个数 ...

  3. CSS3 动画基础

    该文为译文转载,原文地址:http://tech.163.com/mobile/10/0106/09/5SB96QSM00112K88.html   译文:你需要知道的CSS3 动画技术 原文:Wha ...

  4. python 列表操作

    列表的基本操作示例展示: append 功能:列表追加元素 name = ['sd','dfdf','drer'] name.append('sdsd') 返回结果:name ['sd', 'dfdf ...

  5. The Run-Time Constant Pool The Constant Pool

    http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4 http://docs.oracle.com/javase ...

  6. 需求文档2_The Battle of Polytopia

    需求文档 ------------------------------------- 1. 游戏详细分析 The Battle of Polytopia简要介绍 探索型.策略型的对战塔防游戏,回合制. ...

  7. CSS 高级语法

    选择器的分组 你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明.用逗号将需要分组的选择器分开.在下面的例子中,我们对所有的标题元素进行了分组.所有的标题元素都是绿色的. h1,h2,h ...

  8. android学习笔记53——自动朗读TTS

    自动朗读TTS android提供了自动朗读功能--其指的是支持可以对指定文本内容进行朗读,从而发出声音: 同时android的自动朗读支持还允许把文本对应的音频录制成音频文件,方便后续播放. 这种自 ...

  9. 用友的凭证update

    select pk_glorgbook from bd_glorgbook where glorgbookcode='0100-0001';--0001N510000000006K4X ' and p ...

  10. PHP取当前年、月、日开始时间戳和下年、月、日开始时间戳函数

    1.当前年的时间戳 2.当前月的时间戳 3.当前日的时间戳 4.明年的开始时间戳 5.下月的开始时间戳 6.明日的开始时间戳 7.当前时间戳 函数代码: /** * 获取时间戳 * $Ymd = Y ...