如何在 Spring Boot @ResponseBody 中返回 404 响应状态 - 方法返回类型为 Response?

2024-01-14

我使用 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());
新的 ResponseEntity(HttpStatus.BAD_REQUEST);

但我需要返回Response http://square.github.io/retrofit/javadoc/retrofit/client/Response.html.

如果视频为空,如何在此处返回 404 状态代码?


这很简单,通过抛出org.springframework.web.server.ResponseStatusException:

throw new ResponseStatusException(
  HttpStatus.NOT_FOUND, "entity not found"
);

它兼容@ResponseBody并具有任何返回值。需要 Spring 5+

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spring Boot @ResponseBody 中返回 404 响应状态 - 方法返回类型为 Response? 的相关文章

  • 如何将 Java 赋值表达式转换为 Kotlin

    java中的一些东西就像 int a 1 b 2 c 1 if a b c System out print true 现在它应该转换为 kotlin 就像 var a Int 1 var b Int 2 var c Int 1 if a
  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv

随机推荐

  • 如何对 Rails 中 Prawnto 生成的 PDF 进行内联格式(粗体和下划线)?

    我在 Rails 应用程序中使用 Prawn 和 Prawnto 插件生成 PDF 文件 我创建一个带有标准文本区域的标准表单 并将其作为 PDF 文件的正文提交 但是 我需要能够使用以下方式格式化单词和句子 bold 强调 也许不同的字体
  • 受影响的行实体框架

    如何获取 SaveChanges 后受影响的行数 The 保存更改 http msdn microsoft com en us library bb336792 aspx方法返回所有已更改项目的 int MSDN 片段 返回值 类型 Sys
  • 在javascript中选择区域/矩形

    我需要通过鼠标在 HTML5 页面中选择一个区域 然后我将与该区域内的元素进行交互 一定有一种简单的方法可以做到这一点 但我找不到现成的任何东西 不幸的是 jquery UI 选择不起作用 因为它似乎只支持一个父元素 有没有现成的东西可以在
  • 如何以编程方式突出显示 UIButton?

    很多用户抱怨 iPhone 上的小 i 信息按钮很难触摸 好吧 很简单 我只是在它后面贴了一个又大又大的隐形按钮 即使你用最粗心的手指触摸也不会错过它 当你触摸它时 它就会执行 infoButtonAction 事实是 我想让信息按钮本身闪
  • 递归算法的空间复杂度

    我在一次面试中被问到 解决问题的有效方法是检查回文 现在我可以做两件事 从 i 0 开始到 i n 2 并比较第 i 个和第 n 个字符是否相等 我可以使用递归来检查第一个和最后一个是否相同 并且字符串的其余部分是否为回文 第二个是递归的
  • 垃圾收集机制如何工作? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 用外行术语来说 垃圾收集机制是如何工作的 如何识别对象可用于垃圾回收 还有 做什么Reference Counting Mark an
  • 如何判断 Map 是否有默认值?

    有没有办法检查是否Map有定义的默认值吗 我想要的是相当于myMap getOrElse x y 如果关键在哪里x不在地图上 if myMap有默认值 返回该值 否则返回y 该问题的一个人为示例 scala gt def f m Map S
  • 如何在 MFC 应用程序中托管 WPF 表单

    我正在寻找有关在现有 MFC 应用程序中托管 WPF 表单的任何资源 谁能指出我如何做到这一点的正确方向 据我了解 我自己没有尝试过 这几乎就像将 WPF 控制权交给父级句柄一样简单 这是一个演练 在 Win32 中托管 WPF 内容 ht
  • 如何从.net core实体框架调用带有表值参数的存储过程

    我有一个带有表值参数的存储过程 我必须从 net core 中的实体框架调用它 我在上下文对象上找不到任何 API 我尝试过使用 ADO net API 它有效 但现在我必须从 net core 中的 EF 调用它 我必须调用的存储过程返回
  • PHP 多维数组访问

    假设我在 PHP 中有一个多维数组 例如 this array array string name gt string string array gt array string key gt string val 如何访问字符串数组键值对
  • XML 解析错误:文档末尾有多余内容

    我的 xml 文件中出现此错误 XML Parsing error Extra content at the end of the document 我正在使用 Notepad 它在标题标签中显示第二个红色单词
  • Linq 中的 Union 与 Concat

    我有一个问题Union and Concat var a1 new 1 2 Union new 1 2 O P 1 2 var a2 new 1 2 Concat new 1 2 O P 1 2 1 2 var a3 new 1 2 Uni
  • 如何在 Android 设备上的 Flutter 应用程序中显示 TIFF 图像?

    我们的应用程序允许用户建立各种类型的资源库 例如 PDF 电子表格等 我们存储在 S3 上的几乎任何 MIME 类型的文档 当用户点击查看任何这些资源时 我们基本上可以确定我们使用的是 iOS 设备还是 Android 设备 在 iOS 上
  • 频繁使用 localStorage 会减慢我的网站速度吗?

    我正在开发一个 HTML5 游戏 我需要知道频繁更新 localStorage 属性是否会减慢页面速度 我实际上将英雄的位置存储在四个 localStorage 属性中 两个用于实际位置 两个用于碰撞检测系统中使用的过去位置 并每 1 秒间
  • 无需登录或没有任何安全性即可浏览 Nexus 存储库

    我这里有一个非常简单的用例 用例 要求 我想配置我所有的 Nexus 存储库 与我在中看到的非常相似https oss sonatype org view repositories appfuse releases browseindex
  • gitlab-ci.yml 文件中 [STRING] 的正则表达式

    我试图在 gitlab ci yml 文件中设置部署阶段的规则 如果 git 提交消息具有这种格式的特定 STRING 那么它应该部署到编写此规则的特定环境 Deploy to QAT environment deploy qat stag
  • WPF:处理损坏的字体缓存

    我有一个 WPF 应用程序 NET 3 5 通常在我们客户的 XP 计算机上运行 在过去 5 个月中 已发生 3 次损坏的字体缓存导致应用程序在加载时停止响应 删除字体缓存these http support microsoft com k
  • 覆盖扩展中现有的 Visual Studio Code 命令

    是否可以覆盖现有的 VS Code 命令 例如editor action clipboardPasteAction 通过覆盖 我的意思是注册我自己的命令 每次应该调用原始命令时都会自动调用该命令 例如 editor action clipb
  • 错误:this.element.uniqueId 不是函数。 jQuery 用户界面。有人以前见过这个吗?

  • 如何在 Spring Boot @ResponseBody 中返回 404 响应状态 - 方法返回类型为 Response?

    我使用 Spring Boot 和基于 ResponseBody 的方法 如下所示 RequestMapping value VIDEO DATA PATH method RequestMethod GET public ResponseB