博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hessian和Burlap入门教程
阅读量:5069 次
发布时间:2019-06-12

本文共 4268 字,大约阅读时间需要 14 分钟。

一、简介

    Hessian和Burlap是由Caucho Technology提供的基于HTTP协议的轻量级远程服务解决方案。他们都致力于借助尽可能简单那的API和通信协议来简化Web服务。

    Hession和Burlap就如同一个事物的两面,但是每一个解决方案都服务于略微不同的目的。Hession就像RMI一样,使用二进制尽心客户端和服务端的交互。但与其他二进制远程调用技术(如,RMI)不同的是,它的二进制消息可以移植到其他开发语言中(如,PHP、Python、C++、C#)。Burlap是一种基于XML的远程调用技术,这使得它可以自然而然的移植到任何能够解析XML的语言上。正因为如此,Burlap比起Hessian的二进制格式而言有更强的可读性。但,与其他基于XML的远程技术(如,SOAP、XML-RPC)不同,Burlap的消息结构尽可能的简单,不需要额外的外部定义语言(如,WSDL、IDL)。
    你可能想知道如何在Hession和Burlap之间抉择,很大程度,他们是一样的。唯一的区别在于Hession的消息似乎二进制的,在带宽上更有优势,而Burlap的消息是XML的,有更好的可读性。
    由于Hessian和Burlap都是基于HTTP协议的,他们都解决了RMI所头疼的防火墙渗透问题。但是当传递过来的RPC消息中包含序列化对象时,RMI就完胜Hessian和Burlap了。因为Hessian和Burlap都采用私有的序列化机制,如果数据模型非常复杂,那么Hessian和Burlap的序列化模型可能无法胜任。

二、Hession开发步骤

    1、编写服务接口

1 package com.cnblogs.javalouvre.service;2 3 public interface GreetService {4 5     String sayHello(String name);6 7 }

    2、编写服务实现类,须继承自com.caucho.hessian.server.HessianServlet

1 package com.cnblogs.javalouvre.service; 2  3 import com.caucho.hessian.server.HessianServlet; 4  5 public class GreetServiceImpl extends HessianServlet implements GreetService { 6  7     private static final long serialVersionUID = 1880738686281295739L; 8  9     @Override10     public String sayHello(String name) {11         return "Hello " + name;12     }13 14 }

    3、配置web.xml

1 
2
6 7
8
HessianServlet
9
com.caucho.hessian.server.HessianServlet
10
11
home-class
12
com.cnblogs.javalouvre.service.GreetServiceImpl
13
14
15
home-api
16
com.cnblogs.javalouvre.service.GreetService
17
18
1
19
20 21
22
HessianServlet
23
/GreetService
24
25 26
27
index.html
28
index.htm
29
index.jsp
30
31 32

    4、测试客户端

1 package com.cnblogs.javalouvre.client; 2  3 import java.net.MalformedURLException; 4  5 import com.caucho.hessian.client.HessianProxyFactory; 6 import com.cnblogs.javalouvre.service.GreetService; 7  8 public class Client { 9 10     public static void main(String[] args) {11         String url = "http://10.108.1.138:8080/Hessian/GreetService";12 13         try {14             GreetService service = (GreetService) (new HessianProxyFactory()).create(GreetService.class, url);15             System.out.println(service.sayHello("Jobs"));16         } catch (MalformedURLException e) {17             e.printStackTrace();18         }19     }20 21 }

 

三、Burlap开发步骤

    1、编写服务接口(同Hessian示例的接口)

    2、编写服务实现类,须继承自com.caucho.burlap.server.BurlapServlet

1 package com.cnblogs.javalouvre.service; 2  3 import com.caucho.burlap.server.BurlapServlet; 4  5 public class GreetServiceImpl extends BurlapServlet implements GreetService { 6  7     @Override 8     public String sayHello(String name) { 9         return "Hello " + name;10     }11 12 }

    3、配置web.xml

1 
2
6 7
8
GreetService
9
com.cnblogs.javalouvre.service.GreetServiceImpl
10
1
11
12 13
14
GreetService
15
/GreetService
16
17 18
19
index.html
20
index.htm
21
index.jsp
22
23 24

    4、测试客户端

1 package com.cnblogs.javalouvre.client; 2  3 import java.net.MalformedURLException; 4  5 import com.caucho.burlap.client.BurlapProxyFactory; 6 import com.cnblogs.javalouvre.service.GreetService; 7  8 public class Client { 9 10     public static void main(String[] args) {11         String url = "http://10.108.1.138:8080/Burlap/GreetService";12 13         try {14             GreetService service = (GreetService) (new BurlapProxyFactory()).create(GreetService.class, url);15             System.out.println(service.sayHello("Jobs"));16         } catch (MalformedURLException e) {17             e.printStackTrace();18         }19     }20 21 }

转载于:https://www.cnblogs.com/javalouvre/p/3730597.html

你可能感兴趣的文章
01入门
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>