1
を受信しない:@ResponseStatus、クライアントは、私はカスタム例外でコードを持っているエラーメッセージ
@ResponseStatus(value = BAD_REQUEST, reason = "Login is busy")
public class LoginIsBusyException extends RuntimeException{
}
そして、それを投げることができる方法:
@RequestMapping(method = POST)
public void registration(@RequestBody UserRest user) throws
LoginIsBusyException{
userService.checkAlreadyExist(user.getLogin(), user.getMail());
user.setActive(false);
UserRest userRest = userService.addUser(user);
Integer randomToken = randomTokenService.getRandomToken(userRest.getMail());
mailService.sendMail(randomToken, userRest.getLogin(), userRest.getMail());
}
問題がクライアントということですエラーコードのみを受信しますが、ステータステキストを受信しません"ログイン中です"、既にこの例外をキャッチするメソッドを追加しようとしました。
@ExceptionHandler(LoginIsBusyException.class)
public void handleException(HttpServletResponse response) throws IOException
{
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Login is busy");
}
しかし、メッセージがどこかで失われ、顧客はこの応答を取得:つまり、あなたがresponse
を渡していません。あなたの現在のコードとあなたのhandleException
メソッドの@ResponseBody
を逃した
ありがとうございました。しかし、私は '@ RestController'アノテーションを使用していたので、' @ ResponseBody'を使用しませんでした。私はこの質問を別の方法で決めました。もっと正確に言えば、メッセージがヘッダにくるのを待って間違っていました。メッセージはjson bodyにありました。私はSoapUiで応答があるとき、これを理解しました。カスタム例外が正しく機能する、それは私の間違いだった。あなたの答えも正しくあります。 –