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."绘制此 ...
随机推荐
- raw_input 和input的区别
input它会根据用户输入变换相应的类型, raw_input则是不管用户输入什么类型的都会转变成字符型.
- Android列出所有应用,点击可运行~
这个东西就比较容易了. MainActivity.class import android.app.Activity; import android.content.Context; import a ...
- Codeforces Round #165 (Div. 2)
C. Magical Boxes 问题相当于求\[2^p \gt \max{a_i \cdot 2^{k_i}},p \gt k_i\] D. Greenhouse Effect \(dp(i,j)\ ...
- archlinux 学习笔记
磁盘规划 cfdisk 格式化分区 mkfs.ext4 /dev/sda1 mkswap /dev/sda5 mkfs.ext4 /dev/sda6 挂载根分区和boot分区,并建立家目录 mount ...
- Oracle学习系列1-7
Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...
- async 函数学习笔记
async函数就是Generator函数的语法糖. var fs = require('fs'); var readFile = function (fileName) { return new Pr ...
- Android Studio IDE 简单学习和介绍
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- VS中Debug和Realease、及静态库和动态库的区别整理
一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...
- WeX5之xid相关API
WeX5针对xid提供了以下js api: 1.根据xid获取id:this.getIDByXID(xid): 2.根据xid获取HTML节点:this.getElementByXid(xid),此a ...
- 【MySQL】主备复制
复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现.下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具.由于生 ...