日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

文件设置Thrift实例

發(fā)布時(shí)間:2025/3/15 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件设置Thrift实例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

時(shí)間緊張,先記一筆,后續(xù)優(yōu)化與完善。

????要學(xué)習(xí)Thrift,它的官網(wǎng)上有資料分析以及實(shí)例,可以到官網(wǎng):http://thrift.apache.org/上查看。

????在官網(wǎng)下載thrift的資源包,安裝編譯生成響應(yīng)語(yǔ)言下的jar包,詳細(xì)在windows下或者ubuntu下的安裝參見(jiàn):

????Thrift 學(xué)習(xí)筆記2——Windows環(huán)境下Thrift的安裝、編譯以及測(cè)試

????Thrift 學(xué)習(xí)筆記1——Ubuntu環(huán)境下Thrift的安裝、編譯以及測(cè)試

????我主要是利用java語(yǔ)言實(shí)現(xiàn)Thrift的實(shí)例。因?yàn)楦杏X(jué)安裝起來(lái)比擬麻煩,所以不想去安裝thrift,我直接應(yīng)用別人已經(jīng)編譯好的jar包,將這些jar包直接添加到我的Myeclipse工程下就能夠編寫(xiě)Thrift的項(xiàng)目了。此外,thrift文件主動(dòng)生成java代碼需要應(yīng)用thrift-0.9.0.exe,以上文件可以到這里去下載:

????thrift-0.9.0.exe下載地址

????Java語(yǔ)言Thrift工程需要的jar包下載地址

????libthrift-0.9.0.jar

????下面通過(guò)幾個(gè)實(shí)例來(lái)說(shuō)明Thrift的應(yīng)用方法:

????1、我們將下載的thrift-0.9.0.exe放置在目錄D:\Thrift下

????2、編寫(xiě)Hello.thrift文件

service Hello{string helloString(1:string para)i32 helloInt(1:i32 para)bool helloBoolean(1:bool para)void helloVoid()string helloNull() }

????這是應(yīng)用IDL描述性語(yǔ)言編寫(xiě)的Thrift文件,包括了5個(gè)方法,每一個(gè)方法包括一個(gè)方法名,參數(shù)列表和返回類(lèi)型。每一個(gè)參數(shù)包括參數(shù)序號(hào),參數(shù)類(lèi)型以及參數(shù)名。 Thrift 是對(duì) IDL(Interface Definition Language) 描述性語(yǔ)言的一種詳細(xì)實(shí)現(xiàn)。

????3、主動(dòng)生成java代碼

????將Hello.thrift文件和thrift-0.9.0.exe放置到相同目錄下,即D:\Thrift,運(yùn)行cmd,打開(kāi)窗口命令行,定位到D:\Thrift

????執(zhí)行命令:

D:\Thrift>thrift-0.9.0.exe -gen java Hello.thrift

????此時(shí)會(huì)在D:\Thrift下生成一個(gè)目錄gen-java,里面有Hello.java

????4、創(chuàng)建Java工程

????打開(kāi)Eclipse或者M(jìn)yeclipse,創(chuàng)建一個(gè)Java工程:Hello,導(dǎo)入剛才生成的Hello.java文件,同時(shí)新建一個(gè)自在文件夾,Thrift工程需要的jar包以及l(fā)ibthrift-0.9.0.jar放置到文件夾下,同時(shí)在Java Build Path中添加引用。

????5、編寫(xiě)接口

import org.apache.thrift.TException; public class HelloServiceImpl implements Hello.Iface{public boolean helloBoolean(boolean para) throws TException{return para;}public int helloInt(int para) throws TException{try {Thread.sleep(20000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}return para;}public String helloNull() throws TException{return null;}public String helloString(String para) throws TException{return para;}public void helloVoid() throws TException{System.out.println("Hello World!");}}

????接口實(shí)現(xiàn)Thrift定義文件中的服務(wù)。

????6、編寫(xiě)服務(wù)器端

每日一道理
只有啟程,才會(huì)到達(dá)理想和目的地,只有拼搏,才會(huì)獲得輝煌的成功,只有播種,才會(huì)有收獲。只有追求,才會(huì)品味堂堂正正的人。
import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TBinaryProtocol.Factory; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TSimpleServer; import org.apache.thrift.server.TThreadPoolServer; import org.apache.thrift.server.TThreadPoolServer.Args; import org.apache.thrift.transport.TServerSocket; import org.apache.thrift.transport.TServerTransport; import org.apache.thrift.transport.TTransportException;public class HelloServiceServer {/*** 啟動(dòng)thrift服務(wù)器* @param args*/public static void main(String[] args) { try{//設(shè)置服務(wù)器端口為7911TServerSocket serverTransport = new TServerSocket(7911);//設(shè)置協(xié)議工廠(chǎng)為T(mén)BinaryProtocol.FactoryFactory proFactory = new TBinaryProtocol.Factory();//關(guān)聯(lián)處理器與Hello服務(wù)的實(shí)現(xiàn)TProcessor processor = new Hello.Processor<Hello.Iface>(new HelloServiceImpl());TServer.Args tArgs = new TServer.Args(serverTransport);tArgs.processor(processor);tArgs.protocolFactory(proFactory);//應(yīng)用TSimpleServerTServer server = new TSimpleServer(tArgs);System.out.println("Start server on port 7911....");server.serve();}catch(TTransportException e){e.printStackTrace();} /*try{//設(shè)置服務(wù)器端口為7911TServerSocket serverTransport = new TServerSocket(7911);//設(shè)置協(xié)議工廠(chǎng)為T(mén)BinaryProtocol.FactoryFactory proFactory = new TBinaryProtocol.Factory();//關(guān)聯(lián)處理器與Hello服務(wù)的實(shí)現(xiàn)TProcessor processor = new Hello.Processor<Hello.Iface>(new HelloServiceImpl());Args tArgs = new Args(serverTransport);tArgs.processor(processor);tArgs.protocolFactory(proFactory);TServer server = new TThreadPoolServer(tArgs);System.out.println("Start server on port 7911....");server.serve();TServerTransport s = new TServerSocket(11); }catch(TTransportException e){e.printStackTrace();}*/}}

????7、編寫(xiě)客戶(hù)端

import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; import org.apache.thrift.transport.TTransportException;public class HelloServiceClient {/*** 調(diào)用Hello服務(wù)* @param args*/public static void main(String[] args) { try {//設(shè)置調(diào)用的服務(wù)器為本地,端口為7911TTransport transport = new TSocket("localhost", 7911);transport.open();//設(shè)置傳輸協(xié)議為T(mén)BinaryProtocolTProtocol protocol = new TBinaryProtocol(transport);Hello.Client client = new Hello.Client(protocol);client.helloVoid();transport.close();} catch (TTransportException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

????8、運(yùn)行

????先運(yùn)行服務(wù)器端,再運(yùn)行客戶(hù)端。

????失掉:

Start server on port 7911.... Hello World!

文章結(jié)束給大家分享下程序員的一些笑話(huà)語(yǔ)錄: 據(jù)說(shuō)有一位軟件工程師,一位硬件工程師和一位項(xiàng)目經(jīng)理同坐車(chē)參加研討會(huì)。不幸在從盤(pán)山公路下山時(shí)壞在半路上了。于是兩位工程師和一位經(jīng)理就如何修車(chē)的問(wèn)題展開(kāi)了討論。
硬件工程師說(shuō):“我可以用隨身攜帶的瑞士軍刀把車(chē)壞的部分拆下來(lái),找出原因,排除故障。”
項(xiàng)目經(jīng)理說(shuō):“根據(jù)經(jīng)營(yíng)管理學(xué),應(yīng)該召開(kāi)會(huì)議,根據(jù)問(wèn)題現(xiàn)狀寫(xiě)出需求報(bào)告,制訂計(jì)劃,編寫(xiě)日程安排,逐步逼近,alpha測(cè)試,beta1測(cè)試和beta2測(cè)試解決問(wèn)題。”
軟件工程說(shuō):“咱們還是應(yīng)該把車(chē)推回山頂再開(kāi)下來(lái),看看問(wèn)題是否重復(fù)發(fā)生。”

轉(zhuǎn)載于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/20/3089725.html

總結(jié)

以上是生活随笔為你收集整理的文件设置Thrift实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。