您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        安装
下载
下载地址: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");
 }
}
运行
先运行服务端,再运行客户端。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对亿速云的支持。如果你想了解更多相关内容请查看下面相关链接
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。