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

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條評論
主站蜘蛛池模板: 欧美高清视频www夜色资源 | 日本不卡免费高清一级视频 | 亚洲精品久久久久久下一站 | 久久99精品久久久久久黑人 | 狠狠狠操 | 久操视频免费在线观看 | 久久精品亚洲欧美日韩久久 | 免费一级成人毛片 | 亲热网站 | 日本免费在线视频 | 亚洲精品久久久久福利网站 | 久久精品国产福利 | 七七久久综合 | 亚洲精品一区二区三区四区 | 99热这里只有精品在线 | 国产精品久久国产三级国电话系列 | 国产亚洲精品在天天在线麻豆 | 日韩经典在线 | 亚洲国产九九精品一区二区 | 伊人色视频 | 四虎影视免费观看 | 久热这里 | 91精品国产91久久久久青草 | 亚洲精品第一区二区在线 | 俄罗斯一级在线播放 | 国产成人一区二区三中文 | 成年女人看片免费视频频 | 国产一区欧美二区 | 久久精品免费大片国产大片 | 天天干免费视频 | 欧美在线一级精品 | 国产 magnet | 伊人精品在线观看 | 欧美嫩草| 真实国产乱子伦精品免费 | 国产精品天天看 | 日日干综合 | 日本一级爰免费视频 | 亚洲综合日韩中文字幕v在线 | 人人爱天天做夜夜爽 | 精品在线观看国产 |