慕斯卡6586063
2020-03-19 10:55
server没问题,一旦运行client就报错
老师的代码没有问题,有相同错误的自己纠正。查看
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; }
这部分代码是否有误。祝大家秋招顺利~
看下RemoteInvoke.invoke是否有返回数据,就是在最后一步的时候不要return null;
因为老师的代码实现有bug
RandomTransportSelector#select 方法实现错误,是取不应该是删除;
可以直接clone我的代码,可以直接运行出RPC效果
https://github.com/WuTong111/RPC.git
解决了吗 ,同样这个问题
自己动手实现RPC框架
14370 学习 · 26 问题
相似问题