调用user-thrift-service服务当返回null时的错误

来源:3-9 开发用户EdgeService_D

慕沐3161652

2019-04-06

user-edge-service中login方法调用到user-thrift-service#getUserByName(username),

  • 当username存在时, 可以正常返回结果
  • 当username不存在时, 也就是返回getUserByName(username)返回null, 在user-edge-service中就会报错:
org.apache.thrift.TApplicationException: getUserByName failed: unknown result

为此我在user-edge-service中中写了一个测试方法来描述问题:

    @GetMapping("test")
    @ResponseBody
    public UserInfo test(@RequestParam String username) {
        try {
            // 调用 user-thrift-service 的 getUserByName()方法
            UserInfo userInfo = this.serviceProvider.getUserService().getUserByName(username);
            // 如果username存在则查到后正常返回
            return userInfo;
        } catch (TException e) {
            // 如果username不存在getUserByName返回Null就会抛出异常
            // org.apache.thrift.TApplicationException: getUserByName failed: unknown result
            e.printStackTrace();
        }

        return new UserInfo();
    }

对thrift不太熟悉, 烦请老师解答疑惑

写回答

1回答

刘果国

2019-04-07

确实是这样的,不过不用care这个问题啦,thrift已经日渐式微,建议不用太关注这块了

0
0

Docker+Kubernetes(k8s)微服务容器化实践

从开发到编排,快速,完整,深入的掌握微服务

2617 学习 · 609 问题

查看课程