亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Hessian

系統 2396 0

一、 簡介

?? ????? Hessian 是由 caucho 提供的一個基于 binary-RPC 實現的遠程通訊 library

1 、是基于什么協議實現的 ?

????????? 基于 Binary-RPC 協議實現。

2 、怎么發起請求 ?

????????? 需通過 Hessian 本身提供的 API 來發起請求。

3 、怎么將請求轉化為符合協議的格式的 ?

????????? Hessian 通過其自定義的串行化機制將請求信息進行序列化,產生二進制流。

4 、使用什么傳輸協議傳輸 ?

????????? Hessian 基于 Http 協議進行傳輸。

5 、響應端基于什么機制來接收請求 ?

????????? 響應端根據 Hessian 提供的 API 來接收請求。

6 、怎么將流還原為傳輸格式的 ?

????????? Hessian 根據其私有的串行化機制來將請求信息進行反序列化,傳遞給使用者時已是相應的請求信息對象了。

7 、處理完畢后怎么回應 ?

????????? 處理完畢后直接返回, hessian 將結果對象進行序列化,傳輸至調用端。

二、 Hessian? 調用實例

a) ????????? 編寫服務端代碼

寫一個接口:

public ? interface ? Hello ?{

???? public ?String seeHello();

}

編寫一個實現:

public ? class ?HelloImpl? implements ?Hello {

?

???? private ?String? helloStr ?=? “Hello World” ;

?

???? public ?String getHelloStr() {

??????? return ? helloStr ;

???? }

?

???? public ? void ?setHelloStr(String helloStr) {

??????? this . helloStr ?= helloStr;

???? }

?

???? public ?String seeHello() {

??????? return ? helloStr ;

???? }

?

}

配置 WEB-INF.xml? 部署到 Web 容器中:

????????? <servlet> ??

????????? ???? <servlet-name>hello</servlet-name> ??

????????? ???? <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> ??

????????? ???? <init-param> ??

????????? ???????? <param-name>home-class</param-name> ??

????????? ???????? <param-value>com.alisoft.enet.hessian.HelloImpl</param-value> ??

????????? ???? </init-param> ??

????????? ???? <init-param> ??

????????? ???????? <param-name>home-api</param-name> ??

????????? ???????? <param-value>com.alisoft.enet.hessian.Hello</param-value> ??

????????? ???? </init-param> ??

????????? </servlet> ??? ?? ??

??

????????? <servlet-mapping> ??

????????? ???? <servlet-name>hello</servlet-name> ??

????????? ???? <url-pattern>/hello.xsp</url-pattern> ??

????????? </servlet-mapping> ?

???????????? Ok ,服務端代碼編寫完畢。

????????

b) ????????? 編寫客戶端代碼

?

public ? class ?HelloServiceTest {

?

?? public ? static ? void ?main(String[] args)? throws ?Exception {

????

????? String url =? “http://localhost/hessian/hello.xsp” ;

?

????? HessianProxyFactory factory =? new ?HessianProxyFactory();

????? Hello hello = (Hello) factory.create(Hello. class , url);

?

????? System. out .println( 遠程調用結果 : “ ?+ hello.seeHello());

?

?? }

}

?

????????? 執行客戶端,即可返回相應的結果:

??????????????????? 遠程調用結果 : Hello World ????????

????????? 上面的例子是基于 ?caucho? 提供的 Hessian? 包的基礎上做的,實際上 Spring Hessian 調用只是對這個進行簡單的封裝,便于使用。

? ?

三、Hessian機制

?

?

?

Hessian

? 那么 Hessian 就是把 Java 對象轉變成 ? 字節序列,然后通過 Http 傳輸到 ? 目標服務器上(主機 2 ),主機 2 收到這個字節序列后,按照一定的協議標準進行反序列,提交給對應的服務處理。處理完成以后以同樣的方式返回數據。

?

現在我們回頭看看例子中的配置( WEB-INF.XML :

配置的 Servlet ? com.caucho.hessian.server.HessianServlet

對應的參數:接口 (home-api) com.alisoft.enet.hessian.Hello

???????????????????????????? 實現 (home-class): com.alisoft.enet.hessian.HelloImpl

?

?

?

HessianServlet? 中的實現代碼如下(略過部分代碼):

?

HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;

InputStream is = request.getInputStream();
OutputStream os = response.getOutputStream();

//輸入流
Hessian2Input in = new Hessian2Input(is);
SerializerFactory serializerFactory = getSerializerFactory();
in.setSerializerFactory(serializerFactory);

//輸出流
AbstractHessianOutput out;
int major = in.read();
int minor = in.read();
out = new Hessian2Output(os);

out.setSerializerFactory(serializerFactory);

_homeSkeleton.invoke(in, out);

?

整個執行步驟如下:

l ?? 接收輸入流,并通過 SerializerFactory 轉化為 ?Hessian? 特有的 ? Hessian2Input

l ?? 設置輸出流,并通過 SerializerFactory 轉化為 ?Hessian? 特有的 ? Hessian2Output

l ?? 根據配置的接口和實現參數,調用服務,并把結果寫入到輸出流 ? Hessian2Output

l ??? Out.close()

?

Hessian 遠程訪問基于序列化和反序列化的方式。當程序運行時,程序所創建的各種對象都位于內存中,當程序運行結束,這些對象就結束了生命周期。對象的序列化主要有兩種用途:

l ?? 把對象的字節序列永久地保存到硬盤上,通常是放在一個文件中。

l ?? 在網絡上傳輸對象的字節序列

Hessian


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99久久99热精品免费观看国产 | 成人公开视频 | 日韩免费影视 | 亚洲国产精品线播放 | 奇米影视555 | 在线免费观看一区二区三区 | 福利姬在线精品观看 | 欧美性视频一区二区三区 | 亚洲伊人色一综合网 | ww久久| 久久视频国产 | 看美女毛片 | 欧美国产日韩一区二区三区 | 国产成年网站 | 99久久免费看精品国产一区 | 91精品久久久久久久久久 | 射婷婷 | 色偷偷亚洲女人天堂观看欧 | 亚洲一区精品视频在线 | 国产亚洲综合一区二区在线 | 一级毛片在线看 | 日韩不卡一区二区三区 | 99久久精品一区二区三区 | 欧美真人毛片动作视频 | 91视频这里只有精品 | 国产一级毛片大陆 | 亚洲这里只有精品 | 国产91在线播放边 | 欧美精品久久久久久久小说 | 九草在线免费观看 | 欧美日韩亚洲视频 | 在线观看男女爱视频网站 | 国产区视频在线观看 | 一本久久精品一区二区 | 国产精品免费一区二区三区 | 精品无码久久久久久久动漫 | 国产99视频精品免视看9 | 日韩大片 | 国产一级αv片免费观看 | 精品亚洲国产国拍 | 日韩伦理亚洲欧美在线一区 |