javascript学习指南|java中thrift 入门详解

时间:2020-11-03  来源:apache  阅读:


install

brew install thrift

例子

maven


   
        org.apache.thrift
        libthrift
        0.9.3
   

   
        org.slf4j
        slf4j-log4j12
        1.5.8
   


IDL

编写thrift IDL文件hello.thrift,用于生成java代码

namespace java demo

service HelloService {
    string hi()
}
generate

执行名声,生成java代码

thrift -gen java hello.thrift

此时,会在当前目录下生成java-gen文件夹,其中包含所需要的thrift接口文件HelloService.java.

impl

上步中生成了相应的HelloServie.Iface接口,所以需要实现该接口文件,


package demo;

public class HelloImpl implements HelloService.Iface {
    public String hi() {
        return "Hi!!!";
    }
}

server

package demo;

import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;

public class Server {
    public static void main(String[] args) {
        HelloImpl hello = new HelloImpl();
        final HelloService.Processor p =
                new HelloService.Processor(hello);

        new Thread(new Runnable() {
            public void run() {
                try {
                    TServerTransport st = new TServerSocket(9000);
                    TServer tServer = new TSimpleServer(new TServer.Args(st).processor(p));
                    System.out.println("Starting ...");
                    tServer.serve();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }
}

client

注意server使用的端口9000,


package demo;

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;

public class Client {
    public static void main(String[] args) throws TException {
        TTransport ts = new TSocket("localhost", 9000);
        ts.open();

        TProtocol p = new TBinaryProtocol(ts);
        HelloService.Client client = new HelloService.Client(p);

        System.out.println(client.hi());

        ts.close();
    }
}

javascript学习指南|java中thrift 入门详解

http://m.bbyears.com/jiaocheng/108508.html

推荐访问:java学习路线
相关阅读 猜你喜欢
本类排行 本类最新