首页 > 开发 > Java > 正文

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

2024-07-14 08:43:12
字体:
来源:转载
供稿:网友

安装

下载

下载地址: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"); }}

运行

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表