   dubbo-rpc/dubbo-rpc-rmi
   dubbo-rpc/dubbo-rpc-thrift
   dubbo-rpc/dubbo-rpc-webservice/
output.readBytes(bytes);
        ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
        TTransport transport = new TIOStreamTransport(bis);
        TBinaryProtocol protocol = new TBinaryProtocol(transport);
        
        byte[] length = new byte[4];
        transport.read(length, 0, 4);
        if (bis.markSupported()) {
            bis.mark(0);
        }
        
        Assert.assertEquals(ThriftCodec.MAGIC, protocol.readI16());
        
        int messageLength = protocol.readI32();
        Assert.assertEquals(messageLength + 4, bytes.length);
        
        short headerLength = protocol.readI16();
        
        Assert.assertEquals(ThriftCodec.VERSION, protocol.readByte());
        
        Assert.assertEquals(Demo.Iface.class.getName(), protocol.readString());
        
        Assert.assertEquals(request.getId(), protocol.readI64());
        
        if (bis.markSupported()) {
            bis.reset();
            bis.skip(headerLength);
        }
        TMessage message = protocol.readMessageBegin();
        Demo.echoString_args args = new Demo.echoString_args();