`
wbj0110
  • 浏览: 1570931 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Thrift java服务器与客户端示例

阅读更多

简单的实现一个PING的功能

1.安装thrift

http://thrift.apache.org/download/

人人网镜像下载:

http://labs.renren.com/apache-mirror/thrift/0.6.1/thrift-0.6.1.exe

2.编写Thrift文件(定义接口,结构,异常等),保存为test.thrift

namespace java net.johnc.thrift
service Test{
 
 void ping(1: i32 length)
 
}

 

3.生成接口代码

把thrift-0.6.1.exe和test.thrift文件放在同一个目录,当然也可以把thrift-0.6.1.exe文件放进环境变量

进入DOS命令执行:thrift-0.6.1.exe --gen java test.thrift

生成文件 gen-java/net/johnc/thrift/Test.java

4.编写服务端接口实现类

在POM.xml文件加入以下依赖:

<dependency>
      <groupId>org.apache.thrift</groupId>
      <artifactId>libthrift</artifactId>
      <version>0.6.1</version>
  </dependency>

 

  把生成的Test.java复制到项目下

复制代码
1 package net.johnc.thrift;
2
3  import org.apache.thrift.TException;
4
5  publicclass TestImpl implements Test.Iface {
6
7 publicvoid ping(int length) throws TException {
8 System.out.println("calling ping ,length="+ length);
9 }
10
11 }
复制代码

5.编写启动服务代码

复制代码
1 package net.johnc.thrift;
2
3  import net.johnc.thrift.Test.Processor;
4
5  import org.apache.thrift.protocol.TBinaryProtocol;
6  import org.apache.thrift.protocol.TBinaryProtocol.Factory;
7  import org.apache.thrift.server.TServer;
8  import org.apache.thrift.server.TThreadPoolServer;
9  import org.apache.thrift.server.TThreadPoolServer.Args;
10  import org.apache.thrift.transport.TServerSocket;
11  import org.apache.thrift.transport.TTransportException;
12
13  publicclass Server {
14 publicvoid startServer() {
15 try {
16
17 TServerSocket serverTransport =new TServerSocket(1234);
18
19 Test.Processor process =new Processor(new TestImpl());
20
21 Factory portFactory =new TBinaryProtocol.Factory(true, true);
22
23 Args args =new Args(serverTransport);
24 args.processor(process);
25 args.protocolFactory(portFactory);
26
27 TServer server =new TThreadPoolServer(args);
28 server.serve();
29 } catch (TTransportException e) {
30 e.printStackTrace();
31 }
32 }
33
34 publicstaticvoid main(String[] args) {
35 Server server =new Server();
36 server.startServer();
37 }
38 }
复制代码

 

6.编写客户端代码

复制代码
1 package net.johnc.thrift;
2
3  import org.apache.thrift.TException;
4  import org.apache.thrift.protocol.TBinaryProtocol;
5  import org.apache.thrift.protocol.TProtocol;
6  import org.apache.thrift.transport.TSocket;
7  import org.apache.thrift.transport.TTransport;
8  import org.apache.thrift.transport.TTransportException;
9
10  publicclass Client {
11
12 publicvoid startClient() {
13 TTransport transport;
14 try {
15 transport =new TSocket("localhost", 1234);
16 TProtocol protocol =new TBinaryProtocol(transport);
17 Test.Client client =new Test.Client(protocol);
18 transport.open();
19 client.ping(2012);
20 transport.close();
21 } catch (TTransportException e) {
22 e.printStackTrace();
23 } catch (TException e) {
24 e.printStackTrace();
25 }
26 }
27
28 publicstaticvoid main(String[] args) {
29 Client client =new Client();
30 client.startClient();
31 }
32 }
复制代码
分享到:
评论

相关推荐

    Thrift下java服务器与客户端开发指南[借鉴].pdf

    《Thrift下Java服务器与客户端开发指南》 Thrift是一种开源的软件框架,它允许开发者在不同的编程语言之间轻松地创建可伸缩的服务。本文档主要面向Java开发者,详细介绍了如何利用Thrift来构建服务器和客户端应用。...

    Thrift java服务端、php客户端

    然后,开发者可以通过Thrift的服务器端库来启动服务,使得客户端可以连接并调用这些方法。 在PHP客户端,Thrift同样会为服务接口生成对应的PHP代码。开发者只需要实例化客户端对象,就可以像调用本地函数一样调用...

    采用java操作thrift代码示例

    在Java中操作Thrift,理解服务定义、代码生成、服务实现与客户端调用是关键。通过熟练掌握这些步骤,你可以构建可扩展、高性能的跨语言服务。同时,Thrift也支持C++, Python, PHP, Ruby等其他编程语言,为构建分布式...

    ThriftJavaJavascriptDemo:一个示例项目,演示如何使Thrift与Java服务器和Javascript客户端一起使用

    Thrift Java服务器Javascript客户端演示一个示例项目,演示如何使Thrift与Java服务器和Javascript客户端一起使用因为花了我半天的时间来解决这个问题,所以我认为我会分享自己的发现。要求如何将thrift-0.9.2.exe...

    Thrift 示例代码_Java

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

    基于thrift开发的客户端和服务端

    在这个"基于thrift开发的客户端和服务端"的示例中,我们将深入理解如何使用Thrift来构建跨平台的服务通信。 首先,Thrift通过定义一个接口描述语言(IDL)来创建服务接口。这个文件通常以`.thrift`为扩展名,它包含...

    thrift_java_demo和安装包

    客户端则使用Thrift生成的Java客户端类,连接服务端,进行通信。 - 这个测试项目可能是为了演示如何使用Thrift进行RPC(Remote Procedure Call)调用,包括服务的定义、服务端的实现、客户端的调用流程等。 - 项目...

    Java通过Thrift框架实现通讯的示例代码

    例如,对于Java,会生成服务接口、处理程序、客户端和服务器端的类。 下面我们将深入探讨Java通过Thrift实现通信的步骤: 1. **定义服务接口**: 创建一个`.thrift`文件,如`Service.thrift`,并定义服务接口和...

    Thrift中实现Java与Python的RPC互相调用示例代码.rar

    在本示例中,我们将探讨如何使用Thrift在Java和Python之间实现RPC(Remote Procedure Call)的互相调用。 首先,我们需要了解Thrift IDL。在Thrift IDL文件中,我们可以定义服务接口、数据结构(如struct)和常量。...

    thrift实现http协议案例

    通过运行这个测试工程,你可以了解如何将Thrift服务部署到支持HTTP的服务器上,如Tomcat或Jetty,以及如何使用HTTP客户端(如curl或浏览器)与之交互。 总结一下,Thrift实现HTTP协议的关键在于创建一个自定义...

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

    总结起来,这个"Java中使用Thrift实现RPC示例代码"涵盖了Thrift服务的定义、Java代码的生成、服务端与客户端的实现,以及可能的Netty集成。通过学习这个示例,开发者可以深入理解Thrift在Java环境中的工作方式,以及...

    Thrift简单调用demo代码

    通过学习这个示例,你可以理解Thrift的基本工作原理,包括定义服务接口、生成代码、实现服务逻辑、启动服务、创建客户端以及进行RPC调用。掌握这些知识后,你就能在自己的项目中灵活地应用Thrift,实现跨语言、跨...

    Thrift--JSClient

    3. **JavaScript客户端API**:详细阐述JavaScript客户端库的使用,包括连接到Thrift服务器、调用服务方法、处理异常等。 4. **服务调用**:演示如何在JavaScript中实例化Thrift客户端,连接到服务端,并执行远程...

    thrift java hello

    创建一个Java服务器应用,实例化`HelloWorldHandler`和`TServer`,监听一个端口提供服务。例如: ```java public static void main(String[] args) throws Exception { HelloWorldHandler handler = new ...

    thrift多接口服务示例

    使用Thrift编译器,你可以为指定的目标语言(如Java、Python、C++等)生成服务端和客户端的代码。这些生成的代码会包含服务接口、服务处理类以及客户端代理类。 3. **服务端实现**: 在服务端,你需要为每个服务...

    Thrift demo

    - 客户端示例(如 `client.py` 或 `client.java`) 这个示例可能展示了如何创建一个简单的服务,定义一个方法,如 "sayHello",然后在服务器端实现这个方法,客户端通过 Thrift 协议调用这个方法。 总的来说,...

    Thrift使用示例代码

    4. **启动服务器**:使用Thrift提供的服务器类,如`TServer`,启动服务。例如,我们可以使用`SimpleServer`: ```java TServerTransport serverTransport = new TServerSocket(9090); TServer server = new ...

    java 通过thrift-0.9.1读取hbase表数据

    2. **生成Thrift客户端代码**:使用Thrift编译器将HBase的thrift IDL文件(通常是`hbase.thrift`)转换为Java源代码。这将生成一系列的Java类,这些类包含了与HBase交互的接口和数据结构。 3. **编写Java代码**:...

    thrift服务java调用C#完整代码.rar

    本项目提供了Java调用C#实现的Thrift服务的完整代码示例,有助于理解Thrift的工作原理以及如何在实际开发中应用。 首先,Thrift通过一个名为`.thrift`的接口定义文件来描述服务。这个文件包含了一系列的结构体...

    hive客户端java代码示例.zip

    本文将详细介绍如何在Java中使用Hive客户端进行操作,并提供相关的代码示例。 首先,要使用Java与Hive交互,我们需要引入Hive的Java客户端库,通常包括`hive-exec`, `hive-jdbc`, 和 `hadoop-client`等相关依赖。...

Global site tag (gtag.js) - Google Analytics