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
- package com.chenlb.phprpc;
- /**
- * 业务接口
- *
- * @author chenlb 2009-2-22 下午08:06:13
- */
- public interface Hello {
- String say(String 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,也可以用servlet发布服务
- <%@ page import="com.chenlb.phprpc.*" %>
- <%@ page import="org.phprpc.*" %>
- <%
- 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客户端代码,试用:
- 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
PHPRPC jsp发布服务的更多相关文章
- PHPRPC servlet发布服务
1.服务端 web.xml PHPRPCDispacherServlet 2.客户端 controller层调用
- 13_CXF和Spring整合发布服务
[服务端] 第一步:建立一个Web项目 第二步:填充CXF jar包 第三步:创建接口及服务类 [工程截图(对比之前的WebService_CXF_Server00)] [applicationCon ...
- SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)
1转自:https://www.cnblogs.com/fanjb/p/10677018.html 8年进入国网项目后陆陆续续做了一些接口,按实现方法去分有RFC和代理类sproxy类型,按服务提供方 ...
- ServiceStack.Redis订阅发布服务的调用(Z)
1.Redis订阅发布介绍Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式.发布者和订阅者之间使用频 ...
- ArcGIS Server开发教程系列(2)配置ARCMAP和ARCCatalog发布服务
1. Arc catalog的配置 打开catalog,如图新增刚刚创建的server 1. Use GIS services: 用户身份连接 使用此种连接,可以浏览.使用站点内发布的所有 ...
- ServiceStack.Redis订阅发布服务的调用
1.Redis订阅发布介绍 Redis订阅发布是一种消息通信模式:发布者(publisher)发送消息,订阅者(Subscriber)接受消息.类似于设计模式中的观察者模式. 发布者和订阅者之间使用频 ...
- jsp作为服务端,ajax请求回应
刚学ajax,想以jsp作为服务端,来回应ajax的请求: 代码如下: <!DOCTYPE html> <html> <head lang="en"& ...
- jsp发布:Could not publish server configuration: null. java.lang.NullPointerException
1.jsp发布: Could not publish server configuration: null. java.lang.NullPointerException
- ArcGIS发布服务时缓存切片设置
[文件]>[共享]>[服务]>[覆盖原有服务]或[创建新服务] 设置好相关参数后,会弹出"服务编辑框": 进入"缓存" 1."绘制此 ...
随机推荐
- xmind的第七天笔记
- jsp状态管理
http无状态协议 服务器记不住你 每次浏览器访问,服务器不会特点保存相应信息,故记不住你 jsp状态存储的两种机制 cookie 存储在客户端 用途: 1.简化登陆 2.追踪特定对象 3.保存用户常 ...
- 2015GitWebRTC编译实录10
2015.07.20 rtc_p2p编译通过[879/1600 ] CXX obj /webrtc/p2p/client/rtc_p2p.httpportallocator.o[880/1600 ] ...
- #import 跟 #include、@class 之间的区别
#include 是 C/C++ 导入头文件的关键字 是完整的包含某个文件的内容(包括该文件中被导入的文件) #import 是 OC 导入头文件的关键字 #import 指令是 OC 针对 #in ...
- mysql 导出慢
转: 导出 mysqldump -uroot -p discuz -e --max_allowed_packet=1048576 --net_buffer_length=16384 > dis ...
- RPM卸载软件包
如何卸载rpm包 首先:通过 rpm -q <关键字> 可以查询到rpm包的名字 然后:调用 rpm -e <包的名字> 删除特定rpm包 如果遇到依赖,无法删除,使用 rp ...
- hmt5初学小技巧
图片替换技术: 1.利用行高 .hanggao{ width: 154px; height: 30px; background-image: url(../img/logo_db.png); over ...
- win7 下 arp 绑定mac和Ip
我们都知道直接执行arp -s 命令即可绑定IP和MAC地址,但是在Win7下会遇到不能运行arp -s 进行静态mac绑定的情况,提示“ARP 项添加失败: 拒绝访问.”(英文版提示:The ARP ...
- 颤抖吧,骚年们,2016年末最牛逼的sql语句
select channel_name,from_unixtime(createTime,'%Y-%m-%d') as tdate,count(deviceid) '安装量',count(case w ...
- 用多itemtype的具有addHeaderView的recyclerview,还是scrollview?
如果一个复杂的布局,1,轮播图,2,广告图,3,带标题的list,4,gridview布局,各种不同的布局 在最外层套一个scrollview,里面list 用for循环addView,gridvie ...