ユーザーをログインさせる RPC サービスがあります。ユーザー名とパスワードが有効であれば、すべてうまくいきます。ただし、ユーザー名とパスワードが有効でない場合、サーバー側のコードは正常に実行されているように見えonFailure()
ますが、コールバックのメソッドが起動されます。onFailure()
メソッド自体以外にエラーや例外はありません。クライアント側に表示される例外は、一般的な「500 The call failed on the server; see server log for details」です。
実行時に例外がスローされないように、すべてのコードを 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 が返されれば問題ありません。はfalse を返すonFailure()
場合にのみ発生します。user.isValid()
私はこれに困惑しているので、デバッグのヒントやアドバイスは大歓迎です!