前提,安装了Thrift-0.9.0,用到的jar包:
libthrift-0.9.0.jar
log4j.1.2.14.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
编写test.thrift文件
namespace java com.test
struct RS {
1:i32 code=0;
2:string id;
3:list<RRL> children;
4:string account
}
struct RRL {
1:string id;
2:string name;
2:string desc
}
service CWS {
RS getUserInfo(1:string name)
}
执行以下命令
cd d:
thrift --gen java test.thrift
新建java工程,吧D盘下gen-java下的com文件复制到项目的src下,导入jar包。文件会报错。只要把报错的地方的@override删除即可。
编写接口实现代码和服务端代码:
public class CWSImpl implements CWS.Iface{
public RS getUserInfo(String name) throws TException{
if(name==null || name.equals("")){
return null;
}
RS rs = new RS();
rs.setCode(0);
rs.setId("1001");
}
public static void main(String[] args){
try{
CWSImpl handler = new CWSImpl();
CWS.Processor<CWSImpl> processor = new CWS.Processor<CWSImpl>(handler);
TServerTransport serverTransport = new TServerSocket(9000);
TServer server = new TSimpleServer(new TServer.Args(
serverTransport).processor(processor));
System.out.println("Starting server...");
server.serve();
} catch(Exception e){
e.printStackTrace();
}
}
}
编写客户端代码:
public class TestClient{
public static void main(String[] args){
try{
TTransport transport = new TSocket("localhost", 9000);
transport.open();
TProtocol protocol = new TBinaryProtocol(transport);
CWS.Client client = new CWS.Client(protocol);
System.out.println("client test: ");
RS rs = client.getUserInfo("tom");
System.out.println("code: " + rs.getCode() + ", id: " + rs.getId());
transport.close();
} catch (TException e) {
e.printStackTrace();
}
}
}
运行
分享到:
相关推荐
通过Thrift,你可以用Java编写服务端,而用Python、C++或任何支持Thrift的其他语言编写客户端,实现无缝交互。Thrift还提供了许多优化功能,如多线程处理、异步调用和高级数据序列化选项,使得它成为构建分布式系统...
Thrift处理服务端和客户端之间的序列化、网络通信以及服务接口的定义。Thrift-0.9.0.tar.gz文件包含的就是这个框架的源码和编译后的库,用于集成到项目中。 Apache Ant 是一个基于Java的构建工具,类似于Unix的make...
ThriftDemo实现客户端服务端通讯.zip是一个包含使用RPC框架Thrift进行客户端与服务端通信的示例项目。RPC(Remote Procedure Call)是一种分布式计算技术,它允许程序在不同的网络节点上像调用本地函数一样调用远程...
在这个"ThriftDemo实现客户端服务端通讯_C#_源码.zip"压缩包中,我们很显然会找到一个使用C#实现的Thrift客户端和服务端通信的示例。 1. **Thrift IDL (接口描述语言)** Thrift IDL类似于SOAP的WSDL或Java的RMI-...
3. **服务端实现**:Java服务端实现服务接口,处理业务逻辑。 4. **客户端调用**:PHP客户端通过生成的代码与服务端通信,调用远程服务。 5. **序列化和反序列化**:Thrift处理数据在不同语言间传输时的序列化和反...
通过这些示例,你可以更好地理解如何在实际项目中整合Java、Thrift2和HBase,以实现高效的数据存取。记住,实践是检验理论的最好方法,所以尝试运行这些示例,根据需求进行调整,你会发现自己的技能会得到显著提升。
在Java环境中,Thrift提供了服务器和客户端的实现,使得Java应用能够方便地建立起高效的通信机制。下面我们将深入探讨Thrift在Java环境中的服务器和客户端通信过程。 首先,我们需要定义服务接口。这通常通过编写一...
在这个实战源码中,我们有两个主要的部分:`thrift-server` 和 `thrift-client`,分别代表服务端和客户端的实现。 服务端(thrift-server): 1. **Thrift IDL (接口定义语言)**:首先,你需要定义服务的接口和数据...
Thrift下java服务器与客户端开发指南【精选文档】.doc
thrift框架使用的0.9.3版本,将其在windows平台上编译,对vs2008和vs2013都实现了编译,且对这两个平台的双向通信demo也实现了编译,源码就在压缩包里面。需要libevent和boost库以及openssl库,这些三方库自己下载...
thrift开发时,将thrift文件自动生成java文件需要用到thrift-0.9.0.exe
4. 在你的项目中引入生成的代码,实现服务端和客户端的逻辑。 Thrift的使用不仅限于RPC,还可以作为数据交换的格式,例如存储、日志记录、消息队列等场景。它的高效性和跨语言特性使其成为企业级分布式系统中的重要...
在本示例中,我们将探讨如何使用 Thrift 的 Java 实现,以及提供的 Thrift0.9.1 版本的示例代码。 Thrift 的核心思想是通过定义一种中间表示(IDL,接口定义语言)来描述服务和数据类型。这些 IDL 文件被编译成各种...
在Thrift的Java实现中,Netty可以作为传输层的选择,提供更高效的网络通信。 总结起来,这个"Java中使用Thrift实现RPC示例代码"涵盖了Thrift服务的定义、Java代码的生成、服务端与客户端的实现,以及可能的Netty...
分析Thrift的结构动机是为了实现服务端能取到客户端的IP,因此需要对它的结构、调用流程有些了解。另外,请注意本文针对的是TNonblockingServer,不包含TThreadPoolServer、TThreadedServer和TSimpleServer。 ...
在"Thrift简单调用demo代码"中,我们可以看到Thrift如何用于构建简单的服务和客户端应用。以下是对Thrift及其在示例中的应用的详细解释: 1. **Thrift IDL(接口定义语言)**:Thrift IDL文件通常以`.thrift`为扩展...
在`mmxf.rpc`这个压缩包中,可能包含了Thrift服务的客户端和服务端实现代码,以及相关的配置文件。解压并分析这些文件,可以帮助我们更好地理解和使用这个服务化框架。在实际应用中,可能还需要考虑线程安全、错误...
如题,thrift 0.9,很好用的呦呦呦