[ 
https://issues.apache.org/jira/browse/THRIFT-1368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jake Farrell closed THRIFT-1368.
--------------------------------

       Resolution: Not A Problem
    Fix Version/s: 0.9
    
> 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
>              Labels: TNonblockingServer
>             Fix For: 0.9
>
>
> 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
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to