Java t无任何特定消息的TransportException

Java t无任何特定消息的TransportException,java,thrift,Java,Thrift,我得到了这个异常,它没有任何特定的消息,如读取超时、连接拒绝或连接重置。这种例外情况通常不会发生 我想知道这个例外的根本原因是什么 org.apache.thrift.transport.ttTransportException 位于org.apache.thrift.transport.TIOStreamTransport.readTIOStreamTransport.java:132 位于org.apache.thrift.transport.tttransport.readalltttra

我得到了这个异常,它没有任何特定的消息,如读取超时、连接拒绝或连接重置。这种例外情况通常不会发生

我想知道这个例外的根本原因是什么

org.apache.thrift.transport.ttTransportException 位于org.apache.thrift.transport.TIOStreamTransport.readTIOStreamTransport.java:132 位于org.apache.thrift.transport.tttransport.readalltttransport.java:84 位于org.apache.thrift.transport.TFramedTransport.readFrameTFramedTransport.java:129 位于org.apache.thrift.transport.TFramedTransport.readTFramedTransport.java:101 位于org.apache.thrift.transport.tttransport.readalltttransport.java:84 位于org.apache.thrift.protocol.TBinaryProtocol.readAllTBinaryProtocol.java:378 位于org.apache.thrift.protocol.TBinaryProtocol.readI32TBinaryProtocol.java:297 位于org.apache.thrift.protocol.TBinaryProtocol.readMessageBeginTBinaryProtocol.java:204 位于org.apache.thrift.TServiceClient.receiveBaseTServiceClient.java:69

警察说

对于服务器,您不会遇到任何表明问题的问题,这就是节俭的工作原理

对于客户端,如您的示例中所示,它似乎表明服务器过早地关闭了连接,而客户端则等待接收响应

最可能的原因是服务器端出现了一些未捕获的错误。另一个可能的原因是协议/传输堆栈不匹配

 if (bytesRead < 0) { 
    throw new TTransportException(TTransportException.END_OF_FILE); 
 } 
/** 
 * Reads from the underlying input stream if not null. 
 */ 
public int read(byte[] buf, int off, int len) throws TTransportException 
{ 
    if (inputStream_ == null) { 
        throw new TTransportException(TTransportException.NOT_OPEN, "Cannot read from null inputStream"); 
    } 
    int bytesRead; 
    try { 
        bytesRead = inputStream_.read(buf, off, len); 
    } catch (IOException iox) { 
        throw new TTransportException(TTransportException.UNKNOWN, iox); 
    } 
   if (bytesRead < 0) { 
       throw new TTransportException(TTransportException.END_OF_FILE); 
    } 
    return bytesRead; 
}