博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thrift使用实例
阅读量:6827 次
发布时间:2019-06-26

本文共 3277 字,大约阅读时间需要 10 分钟。

首先下载thrift.exe,和对应lib包。注意版本一定要一致。
否则编译会不识别出现错误。

可能会出现org.slf4j这个错误,那么你要把slf4j-api.jar下载下来引入到你的project中

namespace java com.nerd.thrift.service/** * */service sayThriftService{void say();}
通过在命令行中转到 thrift-1.8.0.exe -gen java  sayThriftService
在磁盘目录中(com.nerd.thrift.service)可发现这个脚本对应的java代码
例如以下:
public class sayThriftService {  /**   *    */  public interface Iface {    public void say() throws org.apache.thrift.TException;  }  public interface AsyncIface {    public void say(org.apache.thrift.async.AsyncMethodCallback
resultHandler) throws org.apache.thrift.TException; } public static class Client extends org.apache.thrift.TServiceClient implements Iface { public static class Factory implements org.apache.thrift.TServiceClientFactory
{ public Factory() {} public Client getClient(org.apache.thrift.protocol.TProtocol prot) { return new Client(prot); } public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) { return new Client(iprot, oprot); } } ...................省略(详细看自己的生成代码)
 先写一个Server类:
package com.nerd.clq;import org.apache.thrift.TException;import org.apache.thrift.TProcessor;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TProtocolFactory;import org.apache.thrift.server.TServer;import org.apache.thrift.server.TThreadPoolServer;import org.apache.thrift.server.TThreadPoolServer.Args;import org.apache.thrift.transport.TServerSocket;import com.nerd.clq.thrift.sayThriftService;import com.nerd.clq.thrift.sayThriftService.Iface;public class Server implements sayThriftService.Iface{	private static TServer server;	@Override	public void say() throws TException {		System.out.println(System.currentTimeMillis());	}		public static void main(String[] args) throws TException {		Server server1 = new Server();		TServerSocket serverTransport = new TServerSocket(8080);                 TProtocolFactory proFactory = new TBinaryProtocol.Factory();                 sayThriftService.Processor
processor = new sayThriftService.Processor
(server1); Args arg = new Args(serverTransport) { }.protocolFactory(proFactory).processor(processor); server = new TThreadPoolServer(arg); //启动服务(先启动这个类,然后启动client类) server.serve(); }}
client客户端类
package com.nerd.clq;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 com.nerd.clq.thrift.sayThriftService;public class Client {	public static void main(String[] args) throws TException {	    TTransport transport = new TSocket("localhost", 8080); 	    TProtocol protocol = new TBinaryProtocol(transport);	    sayThriftService.Client client = new sayThriftService.Client(protocol);	    transport.open();	    client.say();	    transport.close();	}	}
server编写的一般步骤:
1. 创建Handler
2. 基于Handler创建Processor
3. 创建Transport
4. 创建Protocol方式
5. 基于Processor, Transport和Protocol创建Server
6. 执行Server
client编写的一般步骤:
1. 创建Transport
2. 创建Protocol方式
3. 基于Transport和Protocol创建Client
4. 执行Client的方法
创建Transport的时候。一般都须要创建对应的Socket。

转载地址:http://gmukl.baihongyu.com/

你可能感兴趣的文章
JavaScript 操作cookie
查看>>
BeanUtils.copyProperties() 用法
查看>>
微信公众平台开发 - 基础篇
查看>>
WinForm更新文件
查看>>
setprecision **fixed
查看>>
JVM系列五:JVM监测&工具[整理中]
查看>>
局部自适应自动色阶/对比度算法在图像增强上的应用。
查看>>
CMD命令
查看>>
Spring中@Autowired与@Resource的区别
查看>>
Python 学习笔记 -- 类和实例
查看>>
Android 静默安装/后台安装
查看>>
java 非空判断类
查看>>
【html5】如何让Canvas标签自适应设备
查看>>
SecureCRT最佳配色方法+直接修改默认配置方法 - imsoft.cnblogs
查看>>
通俗地介绍下---数据结构之堆
查看>>
JQuery实现简单的服务器轮询效果
查看>>
2017.6.26 工作记录
查看>>
“Too many open files” 小记
查看>>
《Effective C#》读书笔记——条目4:使用Conditional特性而不是#if条件编译<C#语言习惯>...
查看>>
浅谈异常与恋爱
查看>>