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."绘制此 ...
随机推荐
- 新的理念、 新的解决方案、 新的Azure Stack技术预览
Jeffrey Snover 我们很高兴地宣布︰Azure Stack Technical Preview 2(TP2)已发布!我们朝着向您的数据中心提供Azure服务能力的目标又更近一步.自发布第一 ...
- linux下安装mongodb(php版本5.3)
转:原文出处忘记了. 1. 下载MongoDB 2. 解压文件到某目录下,然后重命名: [root@localhost var]# tar -xzvf mongodb-linux-i686-2.0.1 ...
- distributed 以及 distributional 语义表达的区别
昨天在审核资讯翻译的时候遇到这两个单词,文章里讲的也不清楚,感觉翻译的也不到位.今天就单独拿出来比较一下吧.尽管这两个单词相似,它们的具体实现方法还是有很大区别的. Distributional wo ...
- git使用流程
1,配置sshkey: ssh-keygen -t rsa -C "Github 的注册邮箱" //创建本地 ssh 在 Github 中添加这个 sshkey : 复制 id_ ...
- Matlab数字信号处理
产生方波 clear t=0:0.01:10; subplot(4,1,1) f1=square(t); % 产生周期为2pi的方波信号 plot(t,f ...
- 列表框QListWidget类
QListWidget类也是GUI中常用的类,它从QListView下派生: class Q_GUI_EXPORT QListWidget : public QListView { Q_OBJECT ...
- 10 个最适合 Web 和 APP 开发的 NodeJS 框架
在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一.全球各地的开发者张开双臂拥抱 NodeJS. 对于新手来 ...
- SPRING + THYMELEAF 配置
1.使用的是Spring EL而不是Ognl.2.访问上下文的Bean用${@myBean.doSomething()}3.th:field,th:errors,th:errorclass用于form ...
- 严格模式use strict
严格模式主要有以下限制: 变量必须声明后再使用函数的参数不能有同名属性,否则报错不能使用with语句不能对只读属性赋值,否则报错不能使用前缀0表示八进制数,否则报错不能删除不可删除的属性,否则报错不能 ...
- S7-1200 与 S7-200 的对比PPT