Thrift java服务器与客户端示例 - john c - 博

系统 1713 0

Thrift java服务器与客户端示例 - john c - 博客园

Thrift java服务器与客户端示例

Posted on 2011-06-19 03:04 john c 阅读(3540) 评论( 0 ) 编辑 收藏

简单的实现一个PING的功能

1.安装thrift

http://thrift.apache.org/download/

人人网镜像下载:

http://labs.renren.com/apache-mirror/thrift/0.6.1/thrift-0.6.1.exe

2.编写Thrift文件 (定义接口,结构,异常等),保存为test.thrift

namespace java net.johnc.thrift
service Test{
 
  void ping( 1 : i32 length)
 
}

 

3.生成接口代码

把thrift-0.6.1.exe和test.thrift文件放在同一个目录,当然也可以把thrift-0.6.1.exe文件放进环境变量

进入DOS命令执行:thrift-0.6.1.exe  - - gen  java  test . thrift

生成文件 gen-java/net/johnc/thrift/Test.java

4.编写服务端接口实现类

在POM.xml文件加入以下依赖:

<dependency>
       <groupId>org.apache.thrift</groupId>
       <artifactId>libthrift</artifactId>
       <version> 0.6 . 1 </version>
   </dependency>

 

  把生成的Test.java复制到项目下

            
1 package net.johnc.thrift; 2 3   import org.apache.thrift.TException; 4 5   public class TestImpl implements Test.Iface { 6 7 public void ping( int length) throws TException { 8 System.out.println( " calling ping ,length= " + length); 9 } 10 11 }

5.编写启动服务代码

            
1 package net.johnc.thrift; 2 3   import net.johnc.thrift.Test.Processor; 4 5   import org.apache.thrift.protocol.TBinaryProtocol; 6   import org.apache.thrift.protocol.TBinaryProtocol.Factory; 7   import org.apache.thrift.server.TServer; 8   import org.apache.thrift.server.TThreadPoolServer; 9   import org.apache.thrift.server.TThreadPoolServer.Args; 10   import org.apache.thrift.transport.TServerSocket; 11   import org.apache.thrift.transport.TTransportException; 12 13   public class Server { 14 public void startServer() { 15 try { 16 17 TServerSocket serverTransport = new TServerSocket( 1234 ); 18 19 Test.Processor process = new Processor( new TestImpl()); 20 21 Factory portFactory = new TBinaryProtocol.Factory( true , true ); 22 23 Args args = new Args(serverTransport); 24 args.processor(process); 25 args.protocolFactory(portFactory); 26 27 TServer server = new TThreadPoolServer(args); 28 server.serve(); 29 } catch (TTransportException e) { 30 e.printStackTrace(); 31 } 32 } 33 34 public static void main(String[] args) { 35 Server server = new Server(); 36 server.startServer(); 37 } 38 }

 

6.编写客户端代码

            
1 package net.johnc.thrift; 2 3   import org.apache.thrift.TException; 4   import org.apache.thrift.protocol.TBinaryProtocol; 5   import org.apache.thrift.protocol.TProtocol; 6   import org.apache.thrift.transport.TSocket; 7   import org.apache.thrift.transport.TTransport; 8   import org.apache.thrift.transport.TTransportException; 9 10   public class Client { 11 12 public void startClient() { 13 TTransport transport; 14 try { 15 transport = new TSocket( " localhost " , 1234 ); 16 TProtocol protocol = new TBinaryProtocol(transport); 17 Test.Client client = new Test.Client(protocol); 18 transport.open(); 19 client.ping( 2012 ); 20 transport.close(); 21 } catch (TTransportException e) { 22 e.printStackTrace(); 23 } catch (TException e) { 24 e.printStackTrace(); 25 } 26 } 27 28 public static void main(String[] args) { 29 Client client = new Client(); 30 client.startClient(); 31 } 32 }

Thrift java服务器与客户端示例 - john c - 博客园


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论