install
brew install thrift
例子
maven
libthrift
slf4j-log4j12
IDL
编写thrift IDL文件hello.thrift,用于生成java代码
namespace java demo
service HelloService {
string hi()
}
generate
执行名声,生成java代码
thrift -gen java hello.thrift
此时,会在当前目录下生成java-gen文件夹,其中包含所需要的thrift接口文件HelloService.java.
impl
上步中生成了相应的HelloServie.Iface接口,所以需要实现该接口文件,
package demo;
public class HelloImpl implements HelloService.Iface {
public String hi() {
return "Hi!!!";
}
}
server
package demo;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;
public class Server {
public static void main(String[] args) {
HelloImpl hello = new HelloImpl();
final HelloService.Processor
new HelloService.Processor
new Thread(new Runnable() {
public void run() {
try {
TServerTransport st = new TServerSocket(9000);
TServer tServer = new TSimpleServer(new TServer.Args(st).processor(p));
System.out.println("Starting ...");
tServer.serve();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
client
注意server使用的端口9000,
package demo;
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;
public class Client {
public static void main(String[] args) throws TException {
TTransport ts = new TSocket("localhost", 9000);
ts.open();
TProtocol p = new TBinaryProtocol(ts);
HelloService.Client client = new HelloService.Client(p);
System.out.println(client.hi());
ts.close();
}
}
javascript学习指南|java中thrift 入门详解
http://m.bbyears.com/jiaocheng/108508.html
推荐访问:java学习路线