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. find查找命令的各种使用方法

    find是文件查找工具,实时查找,速度慢,精确匹配 find命令基本使用格式 find [options] [查找路径] [查找条件] [处理动作] 查找路径:默认为当前目录 查找条件:默认为查找指定 ...

  2. 论文笔记之:Co-saliency Detection via A Self-paced Multiple-instance Learning Framework

    Co-saliency Detection via A Self-paced Multiple-instance Learning Framework  T-PAMI  2016  摘要:Co-sal ...

  3. Unity3d 引擎原理详细介绍

    体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...

  4. 一步步构建自己的AngularJS(2)——scope之$watch及$digest

    在上一节项目初始化中,我们最终得到了一个可以运行的基础代码库,它的基本结构如下: 其中node_modules文件夹存放项目中的第三方依赖模块,src存放我们的项目代码源文件,test存放测试用例文件 ...

  5. mybatis 使用记录

    首先,贴一个好文.把mybatis中的<if></if>的条件扒到源码分析了一遍.PS:目前还看不懂... http://cheng-xinwei.iteye.com/blog ...

  6. .NET获取客户端、服务器端的信息

    . 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostNa ...

  7. [solr] - 数据库导入

    这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在solrhome文件夹中.E:\solrhom ...

  8. HackerRank "Prim's (MST) : Special Subtree"

    An intuitive Prim algorithm impl. #include <vector> #include <iostream> #include <que ...

  9. <<google软件测试之道>>读书笔记

    以前一直从开发的角度来看待测试,看完这本书以后感觉错了,难怪之前公司的测试一直搭建不起来 1.开发人员,开发测试人员,测试人员 * 开发人员负责开发 * 开发测试人员近距离接触代码,负责编写测试用例, ...

  10. C语言面试题

    #include <stdio.h> int main() { ] = {, , , , }; ); // <==> (unsigned int)&a+sizeof(* ...