Java Hessian小试(转)
http://zhuchengzzcc.iteye.com/blog/1534311
?相比WebService,Hessian更簡單、快捷。采用的是二進制RPC協議(Binary),因為采用的是二進制協議,所以它很適合于發送二進制數據。Hessian通常通過Web應用來提供服務,因此非常類似于WebService。只是它不使用SOAP協議。?
??????Hessian通過Servlet提供遠程服務。需要將匹配某個模式的請求映射到Hessian服務。Spring的DispatcherServlet可以完成該功能,DispatcherServlet可將匹配模式的請求轉發到Hessian服務。Hessian的server端提供一個servlet基類, 用來處理發送的請求,而Hessian的這個遠程過程調用,完全使用動態代理來實現的,,推薦采用面向接口編程,因此,Hessian服務建議通過接口暴露。
?
Hessian處理過程示意圖:?
客戶端——>序列化寫到輸出流——>遠程方法(服務器端)——>序列化寫到輸出流 ——>客戶端讀取輸入流——>輸出結果
環境搭建?
Hessian的下載和安裝請按如下步驟進行:?
(1)登http://www.caucho.com/hessian/下載Hessian。?
(2)把Hessian相應的Jar包放到Web應用下,所有的jar文件都應該放在WEB-INF/lib下,該文件也不例外。
?
?
兩種方式?
1.純Hessian?
這種方式主要是適用于工程中沒有適用像spring框架的情況下,好處是配置方便,但是當內容多的情況下,配置的內容很多。
?
?
Java代碼???
?
web.xml的詳細配置
Xml代碼???
客戶端遠程調用服務器端提供的接口,利用的就是Hessian的HessianProxyFactory,來實現遠程代理
?
Java代碼???
輸出結果,成功
hello: zhuc-no
?哈哈車
?haha
?hehe
?
?
2.Hessian與Spring整合?
相比上一種方式,這個方式就有點麻煩了。Hessian通過Servlet提供遠程服務。需要將匹配某個模式的請求映射到Hessian服務。Spring的DispatcherServlet可以完成該功能,DispatcherServlet可將匹配模式的請求轉發到Hessian服務,web.xml只是定義了“請求轉發器”,該轉發器將匹配/remoting/*的請求截獲,轉發給context的bean處理。而HessianServiceExporter提供bean服務。?
所以Hessian與Spring整合主要就是一下兩個工作:?
1:通過DispatcherServlet來攔截URL請求。?
2:HessianServiceExporter提供bean服務,Spring使用HessianServiceExporter,將一個常規bean導出成Hessian服務。?
?
修改web.xml的詳細配置?
?
Xml代碼???
?
配置remoting-servlet.xml文件,將其放于/WEB-INF/下
?
Xml代碼???
客戶端定義一個remoting-client.xml文件
?
Xml代碼???
?
客戶端調用
?
?
Java代碼???
?
輸出結果同上。
?
注:上述spring方式,客戶端中的請求URL
http://localhost:8080/Hessian/remoting/hessianCommentService?中的hessianCommentService需要和remoting-servlet.xml配置中HessianServiceExporter的bean name相同,否則將會找不到server端
總結
以上是生活随笔為你收集整理的Java Hessian小试(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从 +new Date 说起,Javas
- 下一篇: RPC框架系列——Protocol Bu