Hessian学习笔记
1.Hessian介绍
Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation,远程方法调用)的功能。采用的是二进制RPC(Remote Procedure Call Protocol,远程过程调用协议)协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。它提供web 服务就像创建Servlet一样简单. 使用服务就像使用JDK代理接口一样简单。
hessian类似于Webservice,但是它不使用soap协议,它把协议报文封装到http封包中,通过HTTP信道传输。是一种高效简洁的远程调用框架,它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。 Hessian是通过servlet提供远程服务,完全使用动态代理来实现的,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。 hessian已经支持Java,Flash/Flex,Python,C++,.NET C#,D,Erlang,PHP,Ruby,Objective C。它不需要我们与xml“打交道”,直接操作对象,省去了很多麻烦。
缺点:如果service层中返回的对象是复杂对象,使用它就会削弱Hessian的传输量小的优点,而且也会增加Hessian客户端的代码 量。既然它是把对象序列化为二进制流的形式在http信道中传输,那么对于安全性高的应用不应该采用hessian(比如网上支付等)、
?
初步感受一个hessian的运行.
1.Java服务器端:环境:jdk1.6,Tomcat6.0 依赖的包:hessian-3.0.20.jar
<1>.新建一个名为HessianServer的web project。将hessian-3.0.20.jar放入WEB-INF/lib文件夹中。
<2>.接口:
?将项目发布到tomcat服务器上
2. Java客户端:环境:jdk1.6,Tomcat6.0 依赖的包:hessian-3.0.20.jar
<1>.创建一个名为HessianClient的java project,导入hessian-3.0.20.jar。
<2>.创建与服务器一样的接口及User类,注意它们所在的包路径也要与服务器相同,否则会出现java.lang.ClassNotFoundException。
<3>.客户端:package jay.client;import java.net.MalformedURLException;import jay.demo.hessian.server.MyService;import com.caucho.hessian.client.HessianProxyFactory;/** * * @author Jay.Sun 2010.10.12 * */public class clientTest {public static void main(String[] args) throws MalformedURLException, ClassNotFoundException {String url = "http://localhost:8080/HessianServer/helloworld";//String url = "http://localhost:8080/HessianServer/remote/helloSpring";HessianProxyFactory factory = new HessianProxyFactory();//MyService myservice = (MyService) factory.create(url);MyService myservice = (MyService) factory.create(MyService.class,url);myservice.setName("JaySun-test");System.out.println(myservice.sayHello());System.out.println(myservice.getUser().getName());System.out.println(myservice.getUser().getPassword()); }}?启动tomcat,运行ClientTest。运行结果:
Hello JaySun-test
Jay
123456后续加上整合Spring,今天先写到这里