Thrift入门
来源:互联网 发布:游戏心理学 知乎 编辑:程序博客网 时间:2024/05/17 06:32
简单实现thrift demo
1、首先编写描述文件:
namespace java com.plateno.web.thriftstruct Person {1:i32 id;2:string username;3:string password;}service PersonService {i32 addPerson(1:Person person),Person findPerson(1:i32 id),bool deletePerson(1:i32 id),bool updatePerson(1:Person person)}
2、编译描述文件(需要下载编译器,我的是thrift-0.9.2.exe)
thrift-0.9.2.exe -gen java Person.thrift
3、把生成的java文件放到工程,我的文件名是Person.java、PersonService.java
4、实现接口:
package com.plateno.web.thrift;import org.apache.thrift.TException;public class PersonServiceImpl implements PersonService.Iface{@Overridepublic int addPerson(Person person) throws TException {System.out.println(person.toString());return 0;}@Overridepublic Person findPerson(int id) throws TException {System.out.println(id);Person p = new Person();p.setId(520);p.setUsername("username");p.setPassword("password");return p;}@Overridepublic boolean deletePerson(int id) throws TException {System.out.println(id);return false;}@Overridepublic boolean updatePerson(Person person) throws TException {System.out.println(person.toString());return false;}}
5、编写服务器端
package com.plateno.web.thrift;import java.net.InetSocketAddress;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.server.TServer;import org.apache.thrift.server.TThreadPoolServer;import org.apache.thrift.server.TThreadPoolServer.Args;import org.apache.thrift.transport.TServerSocket;import org.apache.thrift.transport.TServerTransport;import org.apache.thrift.transport.TTransportFactory;public class ThrifServerTest {public static void main(String[] args) throws Exception{PersonService.Processor<PersonServiceImpl> process = new PersonService.Processor<PersonServiceImpl>(new PersonServiceImpl());TServerTransport serverTransport = new TServerSocket(new InetSocketAddress("0.0.0.0", 7788));Args arg = new Args(serverTransport);arg.processor(process);arg.protocolFactory(new TBinaryProtocol.Factory(true, true));arg.transportFactory(new TTransportFactory());TServer server = new TThreadPoolServer(arg);System.out.println("begin....");server.serve();System.out.println("end....");server.stop();}}
6、编写客户端
package com.plateno.web.thrift;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TSocket;import org.apache.thrift.transport.TTransport;public class ThrirfClientTest {public static void main(String[] args) throws Exception{TTransport transport = new TSocket("127.0.0.1", 7788);TProtocol protocol = new TBinaryProtocol(transport);transport.open();PersonService.Client client = new PersonService.Client(protocol);Person person = new Person();person.setId(1);person.setUsername("name");person.setPassword("pass");int i = client.addPerson(person);System.out.println(i);Person p = client.findPerson(1);System.out.println(p);transport.close();}}运行成功,yeah。
0 0
- 【thrift】 thrift入门
- thrift 入门
- Thrift入门
- thrift入门
- Thrift 入门
- Thrift入门
- Thrift 入门
- Thrift入门
- Thrift 入门
- Thrift入门
- Thrift入门
- thrift 入门介绍
- [转] Apache Thrift入门
- thrift 入门介绍
- Thrift入门介绍
- [转] Apache Thrift入门
- thrift 入门介绍
- thrift 入门介绍
- 小草与大树的一分钟演讲
- 黑马程序员——java的反射机制
- image_filter讨论
- Android开发学习资源之(四)
- java WEB log4j 配置
- Thrift入门
- EL表达式
- Java float、double使用注意问题
- Android studio第一次使用配置(二)新建工程并安装Genymotion模拟器
- 【c语言】编写程序,使字符串逆序,空间复杂度O(1)
- 为什么这么不听话?
- android:屏幕自适应
- PDB符号文件与Windows下利用Windbg 分析dump
- 0702阶段总结