Spring Bootの@ResponseBodyで404応答ステータスを返す方法 - メソッドの戻り値のタイプはResponseですか?
2023-08-31 23:35:11
質問
Spring Bootで以下のような@ResponseBodyベースのアプローチで使っています。
@RequestMapping(value = VIDEO_DATA_PATH, method = RequestMethod.GET)
public @ResponseBody Response getData(@PathVariable(ID_PARAMETER) long id, HttpServletResponse res) {
Video video = null;
Response response = null;
video = videos.get(id - 1);
if (video == null) {
// TODO how to return 404 status
}
serveSomeVideo(video, res);
VideoSvcApi client = new RestAdapter.Builder()
.setEndpoint("http://localhost:8080").build().create(VideoSvcApi.class);
response = client.getData(video.getId());
return response;
}
public void serveSomeVideo(Video v, HttpServletResponse response) throws IOException {
if (videoDataMgr == null) {
videoDataMgr = VideoFileManager.get();
}
response.addHeader("Content-Type", v.getContentType());
videoDataMgr.copyVideoData(v, response.getOutputStream());
response.setStatus(200);
response.addHeader("Content-Type", v.getContentType());
}
などの典型的なアプローチを試してみました。
res.setStatus(HttpStatus.NOT_FOUND.value());
new ResponseEntity(HttpStatus.BAD_REQUEST);
を返さなければならないが 応答 .
video が null の場合、404 ステータス コードを返すにはどうすればよいですか?
どのように解決するには?
を作成します。
NotFoundException
クラスで
@ResponseStatus(HttpStatus.NOT_FOUND)
アノテーションを付けて、コントローラから投げます。
@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "video not found")
public class VideoNotFoundException extends RuntimeException {
}
関連
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
java 365*1000*60*60*24 計算問題
-
アクセス制限の解決方法: ---- in Java
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み] Spring BootでSQL文のログを取るには?
-
[解決済み] Spring MVCの@ResponseBodyメソッドがStringを返すときにHTTP 400エラーで応答するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
プロジェクトの依存関係を解決できない。
-
Jsoup-Crawlingの動作
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
Junitのユニットテストはjava.lang.Testを報告します。
-
SocketException java.netの4つの例外解決策。
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
テストが空であるかどうかを判断するためのオプションの処理