摘要:Hessian是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能. 相比WebService,Hessian更簡單、快捷。采用的是二進制RPC協議,因為采用的是二進制協議,所以它很適合于發送二進制數據。
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(比如網上支付等)、
2.實現類:
3.web.xml:
三:客戶端:
四:輸出的結果如下圖:
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 是一個二進制協議,提供web 服務就像創建Servlet一樣簡單. 使用服務就像使用JDK代理接口一樣簡單,下面就看一下程序例子。
一:首先看一下程序截圖:
二:服務端:
1.接口:
package com.micai.hessian.server;public interface Basic {public String hello();}
2.實現類:
package com.micai.hessian.server;public class BaseService implements Basic {private String greetings = "Hello, hessian!";public void setGreetings(String greetings) {this.greetings = greetings;}public String hello() {return greetings;}}
3.web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>Hessian</display-name><servlet><servlet-name>ducklyl</servlet-name><servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class><init-param><param-name>home-class</param-name><param-value>com.micai.hessian.server.BaseService</param-value></init-param><init-param><param-name>home-api</param-name><param-value>com.micai.hessian.server.Basic</param-value></init-param></servlet><servlet-mapping><servlet-name>ducklyl</servlet-name><url-pattern>/ducklyl</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>
三:客戶端:
1.測試類:
package com.micai.hessian.client;import com.caucho.hessian.client.HessianProxyFactory;
import com.micai.hessian.server.Basic;public class BasicClient {public static void main(String[] args) throws Exception {String url = "http://localhost:8080/Hessian/ducklyl";//創建factory實例HessianProxyFactory factory = new HessianProxyFactory();//客戶端需實現Basic接口Basic basic = (Basic) factory.create(Basic.class, url);System.out.println("Hessian: " + basic.hello());}
}
四:輸出的結果如下圖:
這樣使用Hessian實現的簡單遠程接口調用就完成了,是不是很簡單呢,趕快來試一下吧!
附上源代碼下載地址:http://download.csdn.net/detail/sxdtzhaoxinguo/9182975