thrift java 例子入门(hello world)
来源:互联网 发布:数据翻译英语 编辑:程序博客网 时间:2024/05/22 02:02
刚学习thrift,网上参考了一些资料,进行thrift入门例子的搭建。
0 . maven文件
<dependencies> <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>0.10.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> </dependencies>
1 . thrift文件编写 helloworld.thrift
namespace java com.thrift.demoservice HelloWorldService { string sayHello(1:string name)}
2 . thrift文件生成java文件
package com.thrift.demo;@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)", date = "2017-04-16")public class HelloWorldService { public interface Iface { public String sayHello(String username) throws org.apache.thrift.TException; } }
其中生成的java文夹还有很多其他相关的方法,这里不再详细展示。
3 . 编写服务端
public class HelloServerDemo { public static final int SERVER_PORT = 9099; public void startServer() { try { System.out.println("server start ...."); TProcessor tprocessor = new HelloWorldService.Processor(new HelloWorldImpl()); 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 happened error!!!"); e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { HelloServerDemo server = new HelloServerDemo(); server.startServer(); }}
4 . 编写客户端
public class HelloClientDemo { public static final String SERVER_IP = "localhost"; public static final int SERVER_PORT = 9099; public static final int TIMEOUT = 30000; /** * * @param userName */ public void startClient(String userName) { TTransport transport = null; try { transport = new TSocket(SERVER_IP, SERVER_PORT, TIMEOUT); TProtocol protocol = new TBinaryProtocol(transport); HelloWorldService.Client client = new HelloWorldService.Client( protocol); transport.open(); String result = client.sayHello(userName); System.out.println("thrift remote call : " + result); } catch (TTransportException e) { e.printStackTrace(); } catch (TException e) { e.printStackTrace(); } finally { if (null != transport) { transport.close(); } } } /** * @param args */ public static void main(String[] args) { HelloClientDemo client = new HelloClientDemo(); client.startClient("THRIFT"); }}
5 启动server和client
服务端启动控制台:
客户端调用及结果:
0 0
- thrift java 例子入门(hello world)
- IDEA Java Thrift Hello world
- Thrift笔记--Hello,world
- thrift cpp hello world
- 第一章 JAVA入门(Hello World)
- java入门之“Hello World”
- Apache Thrift之java入门例子
- 第一章 JAVA入门(Android之Hello World)
- Java Spring MVC入门(三)—— Hello World
- Java入门攻略之Hello World问题
- Java入门第一个程序:Hello World!
- Java基础入门笔记-Hello world
- qt4 hello world 例子
- libevent例子:hello-world
- libevent代码阅读(3)——入门例子“hello-world.c”的学习
- Thrift 入门例子
- Thrift Hello实例(Java版)
- TQ2440驱动-hello world(入门,注意事项)
- 2
- 邮件发送--局域网中配置James邮件服务器(二)
- 接口的深入理解
- C语言编程练习——冒泡排序和选择排序
- Linux进程间通信——管道
- thrift java 例子入门(hello world)
- ZOJ 1608Two Circles and a Rectangle
- Unity人物换装阶段3(ConfigReady)
- 进制转换
- 浅谈java中的集合
- 二叉树的建立和各种遍历(java版)
- SSM框架+Maven——详细整合教程(Spring+SpringMVC+MyBatis)
- Docker mesos在生产环境的应用
- fiddler界面介绍及简单用法