关于java通过thrift调用接口,客户端抛出org.apache.thrift.transport.TTransportException

经测试研究,应该是协议问题,

public void startClient(String username) {
        TTransport tTransport = null;
        try {
            tTransport = new TSocket(SERVER_IP, SERVER_PORT);
            TTransport transport = new TFramedTransport(tTransport);
            //协议要和服务端一致
            TProtocol protocol = new TBinaryProtocol(transport);
            HelloWorldService.Client client = new HelloWorldService.Client(protocol);
            tTransport.open();

            String result = client.sayHello(username);
            System.out.println("Thrift client result=" + result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

根据服务器端分析 ,新增代码:TTransport transport = new TFramedTransport(tTransport);

测试,通过。

猜你喜欢

转载自blog.csdn.net/lixin200609/article/details/82850575