• PHPRPC jsp发布服务


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

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

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

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

    Hello chenlb
    handler:
    Hello other
    args:other

  • 相关阅读:
    websocket简单理解
    对两个列表合成一个列表后进行排序
    爬取今日头条财经版块新闻
    Python的hasattr(),getattr(),setattr()
    Django基础
    pymysql模块的使用
    我一定要学好英语
    Django项目的创建
    MySQL数据库(安装+增删改查)
    jQuery
  • 原文地址:https://www.cnblogs.com/huqianliang/p/5672590.html
Copyright © 2020-2023  润新知