1)安装thrift:到thrift官网下载exe文件,然后将文件重命名为thrift.exe,拷贝到c:\windows目录下(或者任何目录下),然后就可以在dos环境下使用了

c:\windows>thrift -gen java D:\mywork\javaProject\thriftTest\test.thrift ,输出的java文件默认输出到当前目录下c:\windows,也可以使用-o参数指定输出路径

2)下载相关依赖包

2.1)libthrift.jar ,下载地址:http://repo1.maven.org/maven2/org/apache/thrift/libthrift/0.9.0/

2.2)slf4j-api.jar

2.3)slf4j-simple.jar

3)编写thrift 接口文件

  1. namespace cpp zam.thrift.test
  2. namespace py thriftTest
  3. namespace java com.zam.thrift.test
  4. namespace php thriftTest
  5. service Hello {
  6. string helloString(1:string word)
  7. }

4)编写接口实现代码

  1. package com.zam.server;
  2. import org.apache.thrift.TException;
  3. import com.zam.thrift.test.Hello.Iface;
  4. public class HelloImpl implements Iface{
  5. private static int count = 0;
  6. @Override
  7. public String helloString(String word) throws TException {
  8. // TODO Auto-generated method stub
  9. count += 1;
  10. System.out.println("get " + word + " " +count);     return "hello " + word + " " + count;
  11. }
  12. }

5)编写server代码

  1. package com.zam.server;
  2. import org.apache.thrift.protocol.TBinaryProtocol;
  3. import org.apache.thrift.protocol.TBinaryProtocol.Factory;
  4. import org.apache.thrift.server.TServer;
  5. import org.apache.thrift.server.TThreadPoolServer;
  6. import org.apache.thrift.server.TThreadPoolServer.Args;
  7. import org.apache.thrift.transport.TServerSocket;
  8. import org.apache.thrift.transport.TTransportException;
  9. import com.zam.thrift.test.Hello;
  10. import com.zam.thrift.test.Hello.Processor;
  11. public class Server {
  12. public void startServer() {
  13. try {
  14. System.out.println("thrift server open port 1234");
  15. TServerSocket serverTransport = new TServerSocket(1234);
  16. Hello.Processor process = new Processor(new HelloImpl());
  17. Factory portFactory = new TBinaryProtocol.Factory(true, true);
  18. Args args = new Args(serverTransport);
  19. args.processor(process);
  20. args.protocolFactory(portFactory);
  21. TServer server = new TThreadPoolServer(args);
  22. server.serve();
  23. }
  24. catch (TTransportException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. public static void main(String[] args) {
  29. System.out.println("thrift server init");
  30. Server server = new Server();
  31. System.out.println("thrift server start");
  32. server.startServer();
  33. System.out.println("thrift server end");
  34. }
  35. }

6)编写client 代码

  1. package com.zam.server;
  2. import org.apache.thrift.TException;
  3. import org.apache.thrift.protocol.TBinaryProtocol;
  4. import org.apache.thrift.protocol.TProtocol;
  5. import org.apache.thrift.transport.TSocket;
  6. import org.apache.thrift.transport.TTransport;
  7. import org.apache.thrift.transport.TTransportException;
  8. import com.zam.thrift.test.Hello;
  9. public class Client {
  10. public void startClient() {
  11. TTransport transport;
  12. try {
  13. System.out.println("thrift client connext server at 1234 port ");
  14. transport = new TSocket("localhost", 1234);
  15. TProtocol protocol = new TBinaryProtocol(transport);
  16. Hello.Client client = new Hello.Client(protocol);
  17. transport.open();
  18. System.out.println(client.helloString("panguso"));
  19. transport.close();
  20. System.out.println("thrift client close connextion");
  21. } catch (TTransportException e) {
  22. e.printStackTrace();
  23. } catch (TException e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. public static void main(String[] args) {
  28. System.out.println("thrift client init ");
  29. Client client = new Client();
  30. System.out.println("thrift client start ");
  31. client.startClient();
  32. System.out.println("thrift client end ");
  33. }
  34. }

8)运行server和client代码

8.1)启动server端

  1. thrift server init
  2. thrift server start
  3. thrift server open port 1234

8.2)启动client端

  1. thrift client init
  2. thrift client start
  3. thrift client connext server at 1234 port
  4. hello panguso 1
  5. thrift client close connextion
  6. thrift client end

下载地址:http://download.csdn.net/download/liyonghui123/5742211

windows配置thrift开发环境的更多相关文章

  1. windows配置php开发环境

    1.安装xampp. xampp集成了php.prel.mysql.apache等网站工具,安装超简单,本身也超级好用.点击下载xampp 2.讲xmapp中的php配置到环境变量 比如我的xampp ...

  2. 原创:超简单!windows配置NDK开发环境使用JNI

    前段时间看android版的opencv的配置教程时,看到了它的NDK配置方法,感觉简单又不会出错!!! 1.下载NDK,设置NDK路径: 在windows的系统环境变量中添加NDK的路径,环境变量名 ...

  3. windows配置Lua开发环境

    官网上下载的不靠谱,很多库不能用,你如 require "socket" 如果没有vc那些编译也麻烦,摸索了很久,直接下载安装文件安装即可: 安装这两个就行: 先安装C++2005 ...

  4. Windows下配置Java开发环境

    学习Java第一步是配置本地开发环境,学习最基本的桌面开发,下面以win7为例配置Java开发环境,即:JDK+JRE+Eclipse,安装JDK的时候会默认安装JRE,根据提示安装就可以了. 首先去 ...

  5. 【Objective-C】Windows下Objective-C开发环境配置

    [Objective-C]Windows下Objective-C开发环境配置 ftp://ftpmain.gnustep.org/pub/gnustep/binaries/windows/   最近打 ...

  6. Windows下Eclipse+PyDev配置Python开发环境

    1.简介 Eclipse是一款基于Java的可扩展开发平台.其官方下载中包括J2EE.Java.C/C++.Android等诸多版本.除此之外,Eclipse还可以通过安装插件的方式进行包括Pytho ...

  7. IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统

    原文:IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统 asp.net 网站有三种常用的发布方式:分别是拷贝开发机上发布好的 ...

  8. windows下spark开发环境配置

    http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...

  9. Windows上Ruby开发环境的配置

    最近公司项目上有需要,需要开发一个puppet的自动化工具,这个工具需要操作存储设备上的各种资源,而鉴于puppet不是善于完成这个任务的首选语言,于是我们选择了puppet的“爹”,Ruby. 熟悉 ...

随机推荐

  1. HTTP权威指南笔记-2.URL与资源

    2.1 URI与URL.URN URL是浏览器寻找信息时所需的具体位置.URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容. URI是一类 ...

  2. android中dx、dp、dip、sp单位的区别

    1.dp=dip 2.px基于像素,后两者基于像素密度. 3.px既可用于宽度高度,也可用于字体,dp用于宽高,sp用于字体4.android中以320*480屏幕为基准.在相同值的px和dp,在32 ...

  3. jquery ajax 前前后后,所有的函数并查询链接

    jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...

  4. Backbone入门讲解

    Backbone是一个实现了web前端mvc模式的js框架. 一种解决问题的通用方法,我们叫做模式. 设计模式:工厂模式,适配器模式,观察者模式等,推荐js设计模式这本书.设计模式是一种思想. 框架模 ...

  5. 通过profiler对unity进行针对性优化

    转 : http://user.qzone.qq.com/289422269/blog/1453815629?ptlang=2052 通过profiler对unity进行针对性优化  1. CPU U ...

  6. MFC 给对话框注册热键

    在头文件中添加: //}}AFX_MSGafx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);//(此行为加入的)BEGIN_MESSAGE_MA ...

  7. Office 365 系列四 ------ 绑定公司域名

    Office 365包含了企业邮箱服务(Exchange Online),我们如果要用微软的企业邮箱,那么我们必须绑定我们公司的自己域名,而不是用微软 提供的二级域名,其实微软的整个Exchange ...

  8. AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案

    AndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项 ...

  9. Vim命令合集

    1.模式切换 三种模式:命令模式,输入模式,底行模式 命令模式与输入模式之间的切换:i esc 命令模式与底行模式的切换:shift + :  esc 2. 插入 i:在当前字符的左边插入 I:在当前 ...

  10. 【Python全栈笔记】03 [模块二] 16-17 Oct Set 集合,三目运算

    Set 集合 set - unordered collections of unique elements 创建一个set/一个空set # create a new set set1 = {1,2, ...