我有一个登录用户的 RPC 服务。如果用户名和密码有效,一切正常。但是,如果用户名和密码无效,服务器端代码似乎可以正常执行,但onFailure()
会触发回调方法。除了onFailure()
方法本身之外,没有错误或异常。客户端出现的异常是通用的“500 服务器调用失败;有关详细信息,请参阅服务器日志”
我已将所有代码包装在一个 try/catch 块中,以确保在运行时不会引发异常。
这是有问题的方法:
public OmsConsumer login(String username, String password, String ip) {
OmsUser user = auth.validate(username, password, ip);
OmsConsumer consumer;
if(user.isValid()){
logger.info("User is Valid");
consumer = getConsumerByPersonId(user.getPersonId());
}else {
logger.info("User is INVALID");
consumer = new OmsConsumer();
consumer.setValid(false);
consumer.setErrors(user.getErrors());
logger.info("Errors: " + consumer.getErrors().size());
}
return consumer;
}
同样,当user.isValid()
返回 true 时,没有问题。onFailure()
仅在返回 false 时触发user.isValid()
。
我对此感到困惑,因此非常感谢任何调试提示或建议!