Thrift初试。
2015-07-29 14:52
246 查看
window环境
1.下载安装。。
1.1预先安装jdk、ant ,并配置环境变量。
1.2 下载thrift-0.9.2.tar.gz和thrift-0.9.2.exe(可以配置到环境变量中去)。
2.写Thrift文件。
namespace java com.micmiu.thrift.demo
service HelloWorldService{
string sayHello(1:string username)
}
3.生产java文件。
在cmd中输入C:\thrift\thrift.exe -r -gen java ./demoHello.thrift,此时会生成一个gen-java文件夹。文件夹中会有相应的JAVA类。
4.服务端的代码。
4.1首先导入gen-java生成的java类。并且导入依赖包。
可在thrift\lib\java中导入,如果不存在,先ant生成。。测试中需要四个包,(libthrift-0.9.2.jar、log4j-1.2.14.jar、slf4j-log4j12-1.5.8.jar、slf4j-api-1.5.8.jar)
4.2实现具体的业务逻辑类。
5客户端实现
5.1首先导入gen-java生成的java类。并且导入依赖包。
可在thrift\lib\java中导入,如果不存在,先ant生成。。测试中需要四个包,(libthrift-0.9.2.jar、log4j-1.2.14.jar、slf4j-log4j12-1.5.8.jar、slf4j-api-1.5.8.jar)
5.2 客户端代码的实现
1.下载安装。。
1.1预先安装jdk、ant ,并配置环境变量。
1.2 下载thrift-0.9.2.tar.gz和thrift-0.9.2.exe(可以配置到环境变量中去)。
2.写Thrift文件。
namespace java com.micmiu.thrift.demo
service HelloWorldService{
string sayHello(1:string username)
}
3.生产java文件。
在cmd中输入C:\thrift\thrift.exe -r -gen java ./demoHello.thrift,此时会生成一个gen-java文件夹。文件夹中会有相应的JAVA类。
4.服务端的代码。
4.1首先导入gen-java生成的java类。并且导入依赖包。
可在thrift\lib\java中导入,如果不存在,先ant生成。。测试中需要四个包,(libthrift-0.9.2.jar、log4j-1.2.14.jar、slf4j-log4j12-1.5.8.jar、slf4j-api-1.5.8.jar)
4.2实现具体的业务逻辑类。
package com.micmiu.thrift.demo; import org.apache.thrift.TException; public class HelloWordImpl implements HelloWorldService.Iface{ @Override public String sayHello(String username) throws TException { return "service sayHello to "+username; } }4.3写驱动类。
package com; import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TSimpleServer; import org.apache.thrift.transport.TServerSocket; import org.apache.thrift.transport.TTransportException; import com.micmiu.thrift.demo.HelloWordImpl; import com.micmiu.thrift.demo.HelloWorldService; public class HelloServer { public void startServer() throws TTransportException{ System.out.println("HelloServer start ..."); TProcessor tProcessor=new HelloWorldService.Processor<HelloWorldService.Iface>(new HelloWordImpl()); TServerSocket socket=new TServerSocket(8989); TServer.Args targs=new TServer.Args(socket); targs.processor(tProcessor); targs.protocolFactory(new TBinaryProtocol.Factory()); TServer server = new TSimpleServer(targs); server.serve(); } public static void main(String[] args) throws TTransportException { HelloServer h=new HelloServer(); h.startServer(); } }
5客户端实现
5.1首先导入gen-java生成的java类。并且导入依赖包。
可在thrift\lib\java中导入,如果不存在,先ant生成。。测试中需要四个包,(libthrift-0.9.2.jar、log4j-1.2.14.jar、slf4j-log4j12-1.5.8.jar、slf4j-api-1.5.8.jar)
5.2 客户端代码的实现
package com; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; import com.micmiu.thrift.demo.HelloWorldService; public class HelloClient { public void startClient() throws TException { TTransport transport = null; transport = new TSocket("127.0.0.1", 8989); TProtocol protocol = new TBinaryProtocol(transport); HelloWorldService.Client client = new HelloWorldService.Client(protocol); transport.open(); String result = client.sayHello("zhangsan"); transport.close(); System.out.println(result); } public static void main(String[] args) throws TException { HelloClient client = new HelloClient(); client.startClient(); } }
相关文章推荐
- 重新定义超频 解读NVIDIA的Shader频率
- vector的一些操作
- Highcharts前端报表
- 设计模式(3):抽象工厂模式
- java keytool 使用
- DH密钥交换(Diffie–Hellman key exchange)算法笔记
- POJ 2823 Sliding Window
- php 正则表达式捕获组与非捕获组
- 简单的一个哈希查找函数
- 多线程学习总结
- poj 2342 Anniversary party(树形dp)
- Win10正式发布 190个国家和地区免费升级或购买预装电脑获取
- OC特有语法—@property
- HDOJ 5318 The Goddess Of The Moon 矩阵快速幂
- leveldb 性能、使用场景评估
- 快速排序的两种实现
- html加载顺序、onload、JQ.ready()
- Maven项目模板
- LeetCode(78) Subsets
- css弹出遮罩层