Hessian Binary Web Service Protocol远程接口调用入门
生活随笔
收集整理的這篇文章主要介紹了
Hessian Binary Web Service Protocol远程接口调用入门
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要:Hessian是一個(gè)輕量級(jí)的remoting onhttp工具,使用簡(jiǎn)單的方法提供了RMI的功能. 相比WebService,Hessian更簡(jiǎn)單、快捷。采用的是二進(jìn)制RPC協(xié)議,因?yàn)椴捎玫氖嵌M(jìn)制協(xié)議,所以它很適合于發(fā)送二進(jìn)制數(shù)據(jù)。
hessian類似于Webservice,但是它不使用soap協(xié)議,它把協(xié)議報(bào)文封裝到http封包中,通過HTTP信道傳輸。是一種高效簡(jiǎn)潔的遠(yuǎn)程調(diào)用框架,它采用的是二進(jìn)制RPC協(xié)議(Binary),具有輕量、傳輸量小、平臺(tái)無關(guān)的特點(diǎn),特別適合于目前網(wǎng)絡(luò)帶寬比較小的手機(jī)網(wǎng)絡(luò)應(yīng)用項(xiàng)目。 Hessian是通過servlet提供遠(yuǎn)程服務(wù),完全使用動(dòng)態(tài)代理來實(shí)現(xiàn)的,推薦采用面向接口編程,因此,Hessian服務(wù)建議通過接口暴露。 hessian已經(jīng)支持Java,Flash/Flex,Python,C++,.NET C#,D,Erlang,PHP,Ruby,Objective C。其中我最喜歡的就是它不需要我們與xml“打交道”,直接操作對(duì)象,省去了很多麻煩。
缺點(diǎn):如果service層中返回的對(duì)象是復(fù)雜對(duì)象,使用它就會(huì)削弱Hessian的傳輸量小的優(yōu)點(diǎn),而且也會(huì)增加Hessian客戶端的代碼量。既然它是把對(duì)象序列化為二進(jìn)制流的形式在http信道中傳輸,那么對(duì)于安全性高的應(yīng)用不應(yīng)該采用hessian(比如網(wǎng)上支付等)、
2.實(shí)現(xiàn)類: 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>
三:客戶端:
四:輸出的結(jié)果如下圖:
hessian類似于Webservice,但是它不使用soap協(xié)議,它把協(xié)議報(bào)文封裝到http封包中,通過HTTP信道傳輸。是一種高效簡(jiǎn)潔的遠(yuǎn)程調(diào)用框架,它采用的是二進(jìn)制RPC協(xié)議(Binary),具有輕量、傳輸量小、平臺(tái)無關(guān)的特點(diǎn),特別適合于目前網(wǎng)絡(luò)帶寬比較小的手機(jī)網(wǎng)絡(luò)應(yīng)用項(xiàng)目。 Hessian是通過servlet提供遠(yuǎn)程服務(wù),完全使用動(dòng)態(tài)代理來實(shí)現(xiàn)的,推薦采用面向接口編程,因此,Hessian服務(wù)建議通過接口暴露。 hessian已經(jīng)支持Java,Flash/Flex,Python,C++,.NET C#,D,Erlang,PHP,Ruby,Objective C。其中我最喜歡的就是它不需要我們與xml“打交道”,直接操作對(duì)象,省去了很多麻煩。
缺點(diǎn):如果service層中返回的對(duì)象是復(fù)雜對(duì)象,使用它就會(huì)削弱Hessian的傳輸量小的優(yōu)點(diǎn),而且也會(huì)增加Hessian客戶端的代碼量。既然它是把對(duì)象序列化為二進(jìn)制流的形式在http信道中傳輸,那么對(duì)于安全性高的應(yīng)用不應(yīng)該采用hessian(比如網(wǎng)上支付等)、
官方簡(jiǎn)介:Hessian 是一個(gè)二進(jìn)制協(xié)議,提供web 服務(wù)就像創(chuàng)建Servlet一樣簡(jiǎn)單. 使用服務(wù)就像使用JDK代理接口一樣簡(jiǎn)單,下面就看一下程序例子。
一:首先看一下程序截圖:
二:服務(wù)端:
1.接口:
package com.micai.hessian.server;public interface Basic {public String hello();}2.實(shí)現(xiàn)類: 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.測(cè)試類:
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";//創(chuàng)建factory實(shí)例HessianProxyFactory factory = new HessianProxyFactory();//客戶端需實(shí)現(xiàn)Basic接口Basic basic = (Basic) factory.create(Basic.class, url);System.out.println("Hessian: " + basic.hello());} }四:輸出的結(jié)果如下圖:
這樣使用Hessian實(shí)現(xiàn)的簡(jiǎn)單遠(yuǎn)程接口調(diào)用就完成了,是不是很簡(jiǎn)單呢,趕快來試一下吧!
附上源代碼下載地址:http://download.csdn.net/detail/sxdtzhaoxinguo/9182975
總結(jié)
以上是生活随笔為你收集整理的Hessian Binary Web Service Protocol远程接口调用入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux驱动与dts匹配过程,自己编写
- 下一篇: Oracle创建视图实现获取当前数据所在