client报错是怎么回事?

来源:2-15 实战篇---RPC使用案例

慕斯卡6586063

2020-03-19 10:55

http://img2.mukewang.com/5e72dede0001b82b11180241.jpgserver没问题,一旦运行client就报错

写回答 关注

4回答

  • weixin_慕斯卡3057164
    2022-08-08 23:50:26

    老师的代码没有问题,有相同错误的自己纠正。查看

    private Response invokeRemote(Request request) {
        Response resp = null;
        TransportClient client = null;
        try {
            client = selector.select();
            byte[] outBytes  = encoder.encode(request);
            InputStream receive = client.write(new ByteArrayInputStream(outBytes));
            byte[] inBytes = IOUtils.readFully(receive, receive.available());
            resp = decoder.decode(inBytes, Response.class);
    
        } catch (IOException e) {
            log.warn(e.getMessage(), e);
            resp = new Response();
            resp.setCode(1);
            resp.setMessage("RpcClient got error:"
            + e.getClass()
            + ":" + e.getMessage());
    
        } finally {
            if(client != null){
                selector.release(client);
            }
        }
        return resp;
    }

    这部分代码是否有误。祝大家秋招顺利~

  • seederland
    2020-10-17 16:21:54

    看下RemoteInvoke.invoke是否有返回数据,就是在最后一步的时候不要return null;

  • 慕神guang
    2020-05-08 17:53:42

    因为老师的代码实现有bug

    RandomTransportSelector#select 方法实现错误,是取不应该是删除;

    可以直接clone我的代码,可以直接运行出RPC效果

    https://github.com/WuTong111/RPC.git

    慕少0428...

    和remove没关系,remove的返回值也是这个对象,remove是为了下一次他在选择连接的时候,不选已经被选过的

    2021-08-28 22:14:57

    共 2 条回复 >

  • 慕容1065225
    2020-03-20 14:45:53

    解决了吗  ,同样这个问题 

自己动手实现RPC框架

自己动手实现一个完整的RPC框架,So Easy!

14370 学习 · 26 问题

查看课程

相似问题