Thrift下Java服务器与客户端开发指南

javale

贡献于2012-11-29

字数:2514 关键词: WEB服务/RPC/SOA Java

 THRIFT Java服务器及客户端开发指南 文档编号 BUPT-BNRC-CNGI-201005071333-UsageManual 文档级别 公共 文档状态 þ 草稿 ¨ 讨论稿 ¨ 正式发布 文档作者 张晴 文档版本 1.0 创建日期 2010-10-17 16:33 修改日期 2010-10-17 17:23 文档所属: THRIFT 文档名称: JAVA服务器与客户端开发指南 修订历史记录 日期 版本 说明 作者 2010-05-07 1.0 用Thrift开发Java服务器及客户端程序 张晴 相关联系人 姓名 电子邮件 电话 角色 正文目录 1 创建THRIFT文件 4 1.1 编写testJava.thrift 4 1.2 运行thrift编译器,生成项目源文件 4 2 创建JAVA服务器 5 2.1 编写SomethingImpl.java 5 2.2 创建Server.java 5 3 创建JAVA客户端 7 4 编译及运行 8 4.1 编译 8 4.2 运行 8 1 创建Thrift文件 Thrift文件与编程语言无关,用于定义数据类型和服务接口,然后生成用来构建RPC客户和服务器所需的全部代码。 1.1 编写testJava.thrift #!/usr/local/bin/thrift --gen java namespace java Test service Something { 文档所属: THRIFT 文档名称: JAVA服务器与客户端开发指南 i32 ping() } 1.2 运行thrift编译器,生成项目源文件 在linux命令行下输入:Thrift –gen java testJava.thrift 生成的源文件在./gen-java/目录下。 2 创建Java服务器 进入./gen-java目录,确保系统的CLASSPATH设置正确。libthrift.jar,,slf4j-api和slf4j-simple这几个包都需要包含在CLASSPATH里。 2.1 编写SomethingImpl.java package Test; import org.apache.thrift.TException; class SomethingImpl implements Something.Iface { public SomethingImpl() {} public int ping() throws TException { System.out.println( "Recieve ping from client..." ); return 0; } } 2.2 创建Server.java package Test; import java.io.IOException; 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.transport.TServerSocket; import org.apache.thrift.transport.TTransportException; 文档所属: THRIFT 文档名称: JAVA服务器与客户端开发指南 public class Server { private void start() { try { TServerSocket serverTransport = new TServerSocket(7911); Something.Processor processor = new Something.Processor(new SomethingImpl()); Factory protFactory = new TBinaryProtocol.Factory(true, true); TServer server = new TThreadPoolServer(processor, serverTransport, protFactory); System.out.println("Starting server on port 7911 ..."); server.serve(); } catch (TTransportException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]) { Server srv = new Server(); srv.start(); } } 3 创建Java客户端 创建Client.java package Test; import java.io.IOException; import org.apache.thrift.*; import org.apache.thrift.protocol.*; import org.apache.thrift.transport.*; public class Client { public static void main(String [] args) { try { TTransport transport = new TSocket("localhost", 7911); 文档所属: THRIFT 文档名称: JAVA服务器与客户端开发指南 TProtocol protocol = new TBinaryProtocol(transport); Something.Client client = new Something.Client(protocol); transport.open(); System.out.println("Client calls ping()"); client.ping(); transport.close(); } catch (TException x) { x.printStackTrace(); } } } 4 编译及运行 4.1 编译 在linux命令行下输入:javac *.java,生成客户端与服务器端的class文件。 4.2 运行 首先启动服务器。退到gen-java目录,输入java Test/Server,屏幕显示如下: Starting server on port 7911 ... 然后启动客户端。在同一目录下输入java Test/Client,屏幕显示如下: Client calls ping() 这时服务器端的输出多了一行: Recieve ping from client...

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ]
1 人已下载

下载文档

相关文档