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. 省市县三级联动(webFrom...DropdownList)

    编辑页面 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"&g ...

  2. 在指定时间干,必须干(kbmmw 中的事件调度)

    从去年开始,kbmmw 慢慢增加内涵,除了完善各种服务外,陆续增加和扩展了作为一个中间件必须有的功能, 例如,权限管理.日志系统.调度系统.内存调试等功能. 今天给大家介绍一下kbmmw 的调度事件, ...

  3. CCS实现input和img水平对齐的方法

    在网页制作中,常将 input 和 img 放在同一行,img标签总是比input高出一个头,非常难看. CCS实现input和img水平对齐的方法 同时给input和img添加vertical-al ...

  4. 强强联合之jquery操作angularjs对象

    jquery是一个非常强大的js框架,angularjs是一个非常牛的前端mvc框架.虽然用其中的任何一个框架在项目中够用了,但是有时候这两个框架需要混合着用,虽然不推荐.但有时候混合用时,却非常方便 ...

  5. ASP.NET泛型List的各种用法Skip、Take等

    List在.NET里面使用得非常频繁,但有好多人不了解它各种小用法.我就一直记不大住... asp.net中List的简单用法,例如: 1 2 3 4 5 6 7 List<int> li ...

  6. nagios二次开发(四)---nagios监控原理和nagios架构简介

    nagios监控原理 下面根据上面摘自网络的原理图对nagios的监控原理进行一下简单的说明: 1.nagios通过nsca进行被动监控.那么什么是被动监控呢?被动监测:就是指由被监测的服务器主动上传 ...

  7. oracle 队列

    Oracle 高级队列(AQ) 适用对象:初步了解oracle高级队列人群 注意事项: 序号 注意事项 1 JMS监听部分可参考官方文档: http://docs.oracle.com/cd/e128 ...

  8. Node.js intro

    1. require() load module http://stackoverflow.com/questions/9901082/what-is-this-javascript-require ...

  9. 【POJ2778】DNA Sequence(AC自动机,DP)

    题意: 生物课上我们学到,DNA序列中只有A, C, T和G四种片段. 经科学发现,DNA序列中,包含某些片段会产生不好的基因,如片段"ATC"是不好片段,则"AGATC ...

  10. awk 统计出现次数--转

    知识点: 1)数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常称为键,数组元素的键和值存储在Awk程序 ...