phprpc java_PHPRPC

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

packagecom.chenlb.phprpc;

/**

* 业务接口

*

* @author chenlb 2009-2-22 下午08:06:13

*/

publicinterfaceHello {

String say(String name);

}

package com.chenlb.phprpc;

/**

* 业务接口

*

* @author chenlb 2009-2-22 下午08:06:13

*/

public interface Hello {

String say(String name);

}

packagecom.chenlb.phprpc;

/**

* 服务器的一个模拟任务

*

* @author chenlb 2009-2-22 下午08:05:42

*/

publicclassMyHelloimplementsHello {

publicString say(String name) {

return"Hello "+name;

}

}

package com.chenlb.phprpc;

/**

* 服务器的一个模拟任务

*

* @author chenlb 2009-2-22 下午08:05:42

*/

public class MyHello implements Hello {

public String say(String name) {

return "Hello "+name;

}

}

然后发布业务(被远程调用的):rpc.jsp

Hello hello =newMyHello();

PHPRPC_Server phprpc_server =newPHPRPC_Server();

phprpc_server.add(hello);

phprpc_server.start(request, response);

%>

Hello hello = new MyHello();

PHPRPC_Server phprpc_server = new PHPRPC_Server();

phprpc_server.add(hello);

phprpc_server.start(request, response);

%>

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

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

packagecom.chenlb.phprpc;

importorg.phprpc.PHPRPC_Callback;

importorg.phprpc.PHPRPC_Client;

publicclassPhpRpcDemo {

publicstaticvoidmain(String[] args) {

PHPRPC_Client client =newPHPRPC_Client("http://localhost:8080/phprpc/rpc.jsp");

Hello m = (Hello) client.useService(Hello.class);

System.out.println(m.say("chenlb"));

//也可以以 callback形式调用.

client.invoke("say",newObject[] {"other"},newPHPRPC_Callback() {

publicvoidhandler(String result, Object[] args) {

System.out.println("handler:");

System.out.println(result);

System.out.println("args:"+args[0]);

System.out.println();

}

});

}

}

package com.chenlb.phprpc;

import org.phprpc.PHPRPC_Callback;

import org.phprpc.PHPRPC_Client;

public class PhpRpcDemo {

public static void main(String[] args) {

PHPRPC_Client client = new PHPRPC_Client("http://localhost:8080/phprpc/rpc.jsp");

Hello m = (Hello) client.useService(Hello.class);

System.out.println(m.say("chenlb"));

//也可以以 callback形式调用.

client.invoke("say", new Object[] {"other"}, new PHPRPC_Callback() {

public void handler(String result, Object[] args) {

System.out.println("handler:");

System.out.println(result);

System.out.println("args:"+args[0]);

System.out.println();

}

});

}

}

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

Hello chenlb

handler:

Hello other

args:other

使用的确比较简单。可以在 javaeye 群组里与 PHPRPC 作者交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值