`
sleepingxu
  • 浏览: 11543 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Thrift0.9.0的简单示例,java实现客户端服务端

阅读更多

前提,安装了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开发的客户端和服务端

    通过Thrift,你可以用Java编写服务端,而用Python、C++或任何支持Thrift的其他语言编写客户端,实现无缝交互。Thrift还提供了许多优化功能,如多线程处理、异步调用和高级数据序列化选项,使得它成为构建分布式系统...

    maven ant thrift0.9.0

    Thrift处理服务端和客户端之间的序列化、网络通信以及服务接口的定义。Thrift-0.9.0.tar.gz文件包含的就是这个框架的源码和编译后的库,用于集成到项目中。 Apache Ant 是一个基于Java的构建工具,类似于Unix的make...

    ThriftDemo实现客户端服务端通讯.zip

    ThriftDemo实现客户端服务端通讯.zip是一个包含使用RPC框架Thrift进行客户端与服务端通信的示例项目。RPC(Remote Procedure Call)是一种分布式计算技术,它允许程序在不同的网络节点上像调用本地函数一样调用远程...

    ThriftDemo实现客户端服务端通讯_C#_源码.zip

    在这个"ThriftDemo实现客户端服务端通讯_C#_源码.zip"压缩包中,我们很显然会找到一个使用C#实现的Thrift客户端和服务端通信的示例。 1. **Thrift IDL (接口描述语言)** Thrift IDL类似于SOAP的WSDL或Java的RMI-...

    Thrift java服务端、php客户端

    3. **服务端实现**:Java服务端实现服务接口,处理业务逻辑。 4. **客户端调用**:PHP客户端通过生成的代码与服务端通信,调用远程服务。 5. **序列化和反序列化**:Thrift处理数据在不同语言间传输时的序列化和反...

    java代码使用thrift2操作hbase示例

    通过这些示例,你可以更好地理解如何在实际项目中整合Java、Thrift2和HBase,以实现高效的数据存取。记住,实践是检验理论的最好方法,所以尝试运行这些示例,根据需求进行调整,你会发现自己的技能会得到显著提升。

    Thrift Java 服务器 客户端通信

    在Java环境中,Thrift提供了服务器和客户端的实现,使得Java应用能够方便地建立起高效的通信机制。下面我们将深入探讨Thrift在Java环境中的服务器和客户端通信过程。 首先,我们需要定义服务接口。这通常通过编写一...

    Apache Thrift Java实战源码,包含了客户端和服务端源码

    在这个实战源码中,我们有两个主要的部分:`thrift-server` 和 `thrift-client`,分别代表服务端和客户端的实现。 服务端(thrift-server): 1. **Thrift IDL (接口定义语言)**:首先,你需要定义服务的接口和数据...

    Thrift下java服务器与客户端开发指南【精选文档】.doc

    Thrift下java服务器与客户端开发指南【精选文档】.doc

    thrift框架在windows上面实现,编译,并且实现客户端服务端双向通信的demo

    thrift框架使用的0.9.3版本,将其在windows平台上编译,对vs2008和vs2013都实现了编译,且对这两个平台的双向通信demo也实现了编译,源码就在压缩包里面。需要libevent和boost库以及openssl库,这些三方库自己下载...

    thrift-0.9.0.exe

    thrift开发时,将thrift文件自动生成java文件需要用到thrift-0.9.0.exe

    thrift-0.9.0.tar.gz

    4. 在你的项目中引入生成的代码,实现服务端和客户端的逻辑。 Thrift的使用不仅限于RPC,还可以作为数据交换的格式,例如存储、日志记录、消息队列等场景。它的高效性和跨语言特性使其成为企业级分布式系统中的重要...

    Thrift 示例代码_Java

    在本示例中,我们将探讨如何使用 Thrift 的 Java 实现,以及提供的 Thrift0.9.1 版本的示例代码。 Thrift 的核心思想是通过定义一种中间表示(IDL,接口定义语言)来描述服务和数据类型。这些 IDL 文件被编译成各种...

    Java中使用Thrift实现RPC示例代码.rar

    在Thrift的Java实现中,Netty可以作为传输层的选择,提供更高效的网络通信。 总结起来,这个"Java中使用Thrift实现RPC示例代码"涵盖了Thrift服务的定义、Java代码的生成、服务端与客户端的实现,以及可能的Netty...

    Thrift结构分析及增加取客户端IP功能实现

    分析Thrift的结构动机是为了实现服务端能取到客户端的IP,因此需要对它的结构、调用流程有些了解。另外,请注意本文针对的是TNonblockingServer,不包含TThreadPoolServer、TThreadedServer和TSimpleServer。  ...

    Thrift简单调用demo代码

    在"Thrift简单调用demo代码"中,我们可以看到Thrift如何用于构建简单的服务和客户端应用。以下是对Thrift及其在示例中的应用的详细解释: 1. **Thrift IDL(接口定义语言)**:Thrift IDL文件通常以`.thrift`为扩展...

    Thrift RPC客户端的服务化框架代码

    在`mmxf.rpc`这个压缩包中,可能包含了Thrift服务的客户端和服务端实现代码,以及相关的配置文件。解压并分析这些文件,可以帮助我们更好地理解和使用这个服务化框架。在实际应用中,可能还需要考虑线程安全、错误...

    thrift-0.9.0

    如题,thrift 0.9,很好用的呦呦呦

Global site tag (gtag.js) - Google Analytics