欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在Windows系统下安装Thrift的方法与使用讲解

程序员文章站 2024-03-04 10:33:47
安装 下载 下载地址: 将thrift-0.10.0.exe放到一个文件下,如f:\thrift下,将其重命名为thrift.exe。如果不重命名,需要使用thrif...

安装

下载

下载地址:

将thrift-0.10.0.exe放到一个文件下,如f:\thrift下,将其重命名为thrift.exe。如果不重命名,需要使用thrift-0.10.0调用thrift命令。

配置环境变量

path中添加变量值,值为thrift.exe的地址,如f:\thrift。

测试

命令行输入thrift -version,如果输出thrift的版本即表明安装成功。

使用

编写idl接口

helloservice.thrift

namespace java com.thrift.demo.service 
service helloservice{ 
 string sayhello(1:string username)
}

编译

编译之后会生成类helloservice

thrift -gen java helloservice.thrift

编写实现类

helloserviceimpl.java

public class helloserviceimpl implements helloservice.iface {
 @override
 public string sayhello(string username) throws texception {
 return "hello thrift service : " + username;
 }
}

编写服务端代码

public class helloserver {
 public static final int server_port = 8090;
 public void startserver() {
 try {
  system.out.println("helloservice tsimpleserver start ....");
  tprocessor tprocessor = new helloservice.processor<helloservice.iface>(new helloserviceimpl());
  // 简单的单线程服务模型,一般用于测试
  tserversocket servertransport = new tserversocket(server_port);
  tserver.args targs = new tserver.args(servertransport);
  targs.processor(tprocessor);
  targs.protocolfactory(new tbinaryprotocol.factory());
  tserver server = new tsimpleserver(targs);
  server.serve();
 } catch (exception e) {
  system.out.println("server start error!!!");
  e.printstacktrace();
 }
 }
 public static void main(string[] args) {
 helloserver server = new helloserver();
 server.startserver();
 }
}

编写客户端代码

public class helloclient {
 public static final string server_ip = "localhost";
 public static final int server_port = 8090;
 public static final int timeout = 30000;
 public void startclient(string username) {
 ttransport transport = null;
 try {
  transport = new tsocket(server_ip, server_port, timeout);
  // 协议要和服务端一致
  tprotocol protocol = new tbinaryprotocol(transport);
  helloservice.client client = new helloservice.client(protocol);
  transport.open();
  string result = client.sayhello(username);
  system.out.println("thrify client result =: " + result);
 } catch (ttransportexception e) {
  e.printstacktrace();
 } catch (texception e) {
  e.printstacktrace();
 } finally {
  if (null != transport) {
  transport.close();
  }
 }
 }
 public static void main(string[] args) {
 helloclient client = new helloclient();
 client.startclient("michael");
 }
}

运行

先运行服务端,再运行客户端。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接