TNonblockingServer usage
------------------------

                 Key: THRIFT-1368
                 URL: https://issues.apache.org/jira/browse/THRIFT-1368
             Project: Thrift
          Issue Type: Question
          Components: Java - Library
    Affects Versions: 0.7
            Reporter: Jensen Li


Code for server side:
                TNonblockingServerTransport transport = new 
TNonblockingServerSocket(8888);;
                AbstractNonblockingServerArgs<TNonblockingServer.Args> args = 
new TNonblockingServer.Args(transport );
                args.processor(new Calculator.Processor<Iface>(new 
CalculatorHandler()));
                TNonblockingServer server = new TNonblockingServer(args );
                server.serve();

Client code:
                SocketAddress remote = new InetSocketAddress("localhost", 8888);
                SocketChannel channel = SocketChannel.open(remote);
                TNonblockingSocket tnSocket = new TNonblockingSocket(channel);
                TTransport framedTransport = new 
TFramedTransport.Factory().getTransport(tnSocket);
                TTransport transport = framedTransport;
                TProtocol protocol = new TBinaryProtocol(transport);
                Calculator.Client client = new Calculator.Client(protocol);
                System.out.println(client.add(1, 2));
                framedTransport.close();

For each interface method, the first time invoking will fail, with below 
exception, but later it's okay. And for multithread client, some threads may 
fail with the same exception, some threads succeed, could you tell what's the 
cause?

Exception:
Exception in thread "main" org.apache.thrift.transport.TTransportException: 
Cannot read. Remote side has closed. Tried to read 4 bytes, but only got 0 
bytes. (This is often indicative of an internal error on the server side. 
Please check your server logs.)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
        at 
org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to