摘要:官網(wǎng)是二進(jìn)制協(xié)議。處理大量數(shù)據(jù)分布式應(yīng)用需要發(fā)送大量二進(jìn)制數(shù)據(jù)時(shí),使用會(huì)更加有效率,因?yàn)樗苊饬朔峙浯罅繑?shù)組。方法參數(shù)中只有最后一個(gè)參數(shù)可能是,因?yàn)閿?shù)據(jù)是在調(diào)用過(guò)程中讀的。文件下載文件下載實(shí)現(xiàn)原文發(fā)布于
Hessian官網(wǎng):http://hessian.caucho.com/
hessian是二進(jìn)制web service協(xié)議。
Hessian介紹創(chuàng)建Hessian服務(wù)包括四個(gè)步驟:
創(chuàng)建Java接口,用于提供公開服務(wù)
使用HessianProxyFactory創(chuàng)建客戶端
創(chuàng)建服務(wù)實(shí)現(xiàn)類
在servlet引擎中配置服務(wù)
HelloWorld服務(wù)public interface BasicAPI { public String hello(); }服務(wù)實(shí)現(xiàn)
public class BasicService extends HessianServlet implements BasicAPI { private String _greeting = "Hello, world"; public void setGreeting(String greeting) { _greeting = greeting; } public String hello() { return _greeting; } }客戶端實(shí)現(xiàn)
String url = "http://hessian.caucho.com/test/test"; HessianProxyFactory factory = new HessianProxyFactory(); BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url); System.out.println("hello(): " + basic.hello());部署標(biāo)準(zhǔn)web.xml
Hessian序列化hello com.caucho.hessian.server.HessianServlet home-class example.BasicService home-api example.Basic /hello hello
Hessian類可以用來(lái)做序列化與反序列化
序列化Object obj = ...; OutputStream os = new FileOutputStream("test.xml"); Hessian2Output out = new Hessian2Output(os); out.writeObject(obj); os.close();反序列化
InputStream is = new FileInputStream("test.xml"); Hessian2Input in = new Hessian2Input(is); Object obj = in.readObject(null); is.close();
如果要序列化比基礎(chǔ)類型或String類型更加復(fù)雜的java對(duì)象,務(wù)必確保對(duì)象實(shí)現(xiàn)了java.io.Serializable接口。
Hessian處理大量數(shù)據(jù)分布式應(yīng)用需要發(fā)送大量二進(jìn)制數(shù)據(jù)時(shí),使用InputStream會(huì)更加有效率,因?yàn)樗苊饬朔峙浯罅縝yte數(shù)組。方法
參數(shù)中只有最后一個(gè)參數(shù)可能是InputStream,因?yàn)閿?shù)據(jù)是在調(diào)用過(guò)程中讀的。
下面是一個(gè)上傳文件的API的例子
package example; public interface Upload { public void upload(String filename, InputStream data); }
如果返回結(jié)果是InputStream,客戶端必須在finally塊中調(diào)用InputStream.close()方法,因?yàn)镠essian不會(huì)關(guān)閉
底層HTTP流,直到所有數(shù)據(jù)被讀取并且input stream被關(guān)閉。
文件下載API: package example; public interface Download { public InputStream download(String filename, InputStream data); } 文件下載實(shí)現(xiàn): InputStream is = fileProxy.download("test.xml"); try { ... // read data here } finally { is.close(); }
原文發(fā)布于:http://www.yesdata.net/2018/03/11/hessian/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/68815.html
摘要:具體可以參考消息隊(duì)列之具體可以參考實(shí)戰(zhàn)之快速入門十分鐘入門阿里中間件團(tuán)隊(duì)博客是一個(gè)分布式的可分區(qū)的可復(fù)制的基于發(fā)布訂閱的消息系統(tǒng)主要用于大數(shù)據(jù)領(lǐng)域當(dāng)然在分布式系統(tǒng)中也有應(yīng)用。目前市面上流行的消息隊(duì)列就是阿里借鑒的原理用開發(fā)而得。 我自己總結(jié)的Java學(xué)習(xí)的系統(tǒng)知識(shí)點(diǎn)以及面試問(wèn)題,目前已經(jīng)開源,會(huì)一直完善下去,歡迎建議和指導(dǎo)歡迎Star: https://github.com/Snail...
摘要:微軟的雖然引入了事件機(jī)制,可以在隊(duì)列收到消息時(shí)觸發(fā)事件,通知訂閱者。由微軟作為主要貢獻(xiàn)者的,則對(duì)以及做了進(jìn)一層包裝,并能夠很好地實(shí)現(xiàn)這一模式。 在分布式服務(wù)框架中,一個(gè)最基礎(chǔ)的問(wèn)題就是遠(yuǎn)程服務(wù)是怎么通訊的,在Java領(lǐng)域中有很多可實(shí)現(xiàn)遠(yuǎn)程通訊的技術(shù),例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,這些名詞之間到底是些什么關(guān)系呢,它們背后到底是基...
摘要:微軟的雖然引入了事件機(jī)制,可以在隊(duì)列收到消息時(shí)觸發(fā)事件,通知訂閱者。由微軟作為主要貢獻(xiàn)者的,則對(duì)以及做了進(jìn)一層包裝,并能夠很好地實(shí)現(xiàn)這一模式。 在分布式服務(wù)框架中,一個(gè)最基礎(chǔ)的問(wèn)題就是遠(yuǎn)程服務(wù)是怎么通訊的,在Java領(lǐng)域中有很多可實(shí)現(xiàn)遠(yuǎn)程通訊的技術(shù),例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,這些名詞之間到底是些什么關(guān)系呢,它們背后到底是基...
摘要:對(duì)于與而言,則可以看做是消息傳遞技術(shù)的一種衍生或封裝。在生產(chǎn)者通知消費(fèi)者時(shí),傳遞的往往是消息或事件,而非生產(chǎn)者自身。通過(guò)消息路由,我們可以配置路由規(guī)則指定消息傳遞的路徑,以及指定具體的消費(fèi)者消費(fèi)對(duì)應(yīng)的生產(chǎn)者。采用和來(lái)進(jìn)行遠(yuǎn)程對(duì)象的通訊。 消息模式 歸根結(jié)底,企業(yè)應(yīng)用系統(tǒng)就是對(duì)數(shù)據(jù)的處理,而對(duì)于一個(gè)擁有多個(gè)子系統(tǒng)的企業(yè)應(yīng)用系統(tǒng)而言,它的基礎(chǔ)支撐無(wú)疑就是對(duì)消息的處理。與對(duì)象不同,消息本質(zhì)上...
摘要:的服務(wù)治理平臺(tái)發(fā)源于早期的個(gè)人項(xiàng)目??蛻舳税l(fā)現(xiàn)模式要求客戶端負(fù)責(zé)查詢注冊(cè)中心,獲取服務(wù)提供者的列表信息,使用負(fù)載均衡算法選擇一個(gè)合適的服務(wù)提供者,發(fā)起接口調(diào)用請(qǐng)求。系統(tǒng)和系統(tǒng)之間,少不了數(shù)據(jù)的互聯(lián)互通。隨著微服務(wù)的流行,一個(gè)系統(tǒng)內(nèi)的不同應(yīng)用進(jìn)行互聯(lián)互通也是常態(tài)。 PowerDotNet的服務(wù)治理平臺(tái)發(fā)源于早期的個(gè)人項(xiàng)目Power.Apix。這個(gè)項(xiàng)目借鑒了工作過(guò)的公司的服務(wù)治理方案,站在...
閱讀 1279·2021-10-11 10:57
閱讀 2051·2021-09-02 15:15
閱讀 1613·2019-08-30 15:56
閱讀 1205·2019-08-30 15:55
閱讀 1163·2019-08-30 15:44
閱讀 985·2019-08-29 12:20
閱讀 1331·2019-08-29 11:12
閱讀 1073·2019-08-28 18:29