1. 定义thrift接口文件
namespace java com.thrift.gen
service HelloService {
string sayHello(1:string name)
}
2. 编译文件
thrift -gen java C:\myTest.thrift
3. 编写Handler
package com.thrift.test;
import org.apache.thrift.TException;
import com.thrift.gen.HelloService;
public class MyHandler implements HelloService.Iface {
@Override
public String sayHello(String name) throws TException {
System.out.println("Come with a request!");
return "Hello, " + name;
}
}
4. 编写Server
package com.thrift.test;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TServer.Args;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;
import com.thrift.gen.HelloService;
public class Server {
public static void main(String[] args) {
MyHandler handler = new MyHandler();
final HelloService.Processor<MyHandler> p = new HelloService.Processor<MyHandler>(handler);
new Thread(new Runnable() {
@Override
public void run() {
try {
TServerTransport st = new TServerSocket(9000);
TServer server = new TSimpleServer(new Args(st).processor(p));
System.out.println("Starting the simple server ....");
server.serve();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
5. 编写客户端
package com.thrift.test;
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.thrift.gen.HelloService;
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.sayHello("Potter"));
ts.close();
}
}
6. 启动服务器,调用客户端