评论

收藏

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

编程语言 编程语言 发布于:2021-10-06 17:01 | 阅读数:407 | 评论:0

今天小编就为大家分享一篇关于在Windows系统下安装Thrift的方法与使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
安装
下载
下载地址:http://archive.apache.org/dist/thrift/0.10.0/
将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");
 }
}
运行
先运行服务端,再运行客户端。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对CodeAE代码之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/sinat_28394909/article/details/84645782

关注下面的标签,发现更多相似文章