调用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回答
-
确实是这样的,不过不用care这个问题啦,thrift已经日渐式微,建议不用太关注这块了
00
相似问题