如:thrift -gen java D:\mywork\javaProject\thriftTest\test.thrift ,输出的java文件默认输出到当前目录下,也可以使用-o参数指定输出路径
2)下载相关依赖包
2.1)libthrift.jar ,下载地址:http://repo1.maven.org/maven2/org/apache/thrift/libthrift/0.9.0/
2.2)slf4j-api.jar
2.3)slf4j-simple.jar
3)编写thrift 接口文件
namespace cpp zam.thrift.test namespace py thriftTest namespace java com.zam.thrift.test namespace php thriftTest service Hello { string helloString(1:string word) }4)编写接口实现代码
package com.zam.server; import org.apache.thrift.TException; import com.zam.thrift.test.Hello.Iface; public class HelloImpl implements Iface{ private static int count = 0; @Override public String helloString(String word) throws TException { // TODO Auto-generated method stub count += 1; System.out.println("get " + word + " " +count); return "hello " + word + " " + count; } }5)编写server代码
package com.zam.server; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TBinaryProtocol.Factory; 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.TTransportException; import com.zam.thrift.test.Hello; import com.zam.thrift.test.Hello.Processor; public class Server { public void startServer() { try { System.out.println("thrift server open port 1234"); TServerSocket serverTransport = new TServerSocket(1234); Hello.Processor process = new Processor(new HelloImpl()); Factory portFactory = new TBinaryProtocol.Factory(true, true); Args args = new Args(serverTransport); args.processor(process); args.protocolFactory(portFactory); TServer server = new TThreadPoolServer(args); server.serve(); } catch (TTransportException e) { e.printStackTrace(); } } public static void main(String[] args) { System.out.println("thrift server init"); Server server = new Server(); System.out.println("thrift server start"); server.startServer(); System.out.println("thrift server end"); } }6)编写client 代码
package com.zam.server; 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 org.apache.thrift.transport.TTransportException; import com.zam.thrift.test.Hello; public class Client { public void startClient() { TTransport transport; try { System.out.println("thrift client connext server at 1234 port "); transport = new TSocket("localhost", 1234); TProtocol protocol = new TBinaryProtocol(transport); Hello.Client client = new Hello.Client(protocol); transport.open(); System.out.println(client.helloString("panguso")); transport.close(); System.out.println("thrift client close connextion"); } catch (TTransportException e) { e.printStackTrace(); } catch (TException e) { e.printStackTrace(); } } public static void main(String[] args) { System.out.println("thrift client init "); Client client = new Client(); System.out.println("thrift client start "); client.startClient(); System.out.println("thrift client end "); } }8)运行server和client代码
8.1)启动server端
thrift server init thrift server start thrift server open port 12348.2)启动client端
thrift client init thrift client start thrift client connext server at 1234 port hello panguso 1 thrift client close connextion thrift client end9)示例代码下载地址: http://download.csdn.net/detail/azhao_dn/5341602