当前位置: 首页 > 知识库问答 >
问题:

Spring BootHTTP状态而不引发异常

施喜
2023-03-14

我想返回200以外的HTTP状态,而不使用@ExceptionHandler注释。

这样做的原因是,并不是每次调用我的应用程序(导致状态为not OK)都应该抛出异常,至少在我看来不是这样。

例如,如果一个用户试图登录系统,但提供了一个不准确的密码,我认为没有理由为了能够返回401状态而抛出异常。相反,我希望能够从“常规”方法中返回状态。

这背后的原因是,抛出不必要的异常既弄乱了我的日志文件,又“使用”了我的日志聚合器(Rollbar/哨兵)每月津贴。

我尝试过用@响应状态@响应身体注释方法,但是不起作用。

我四处寻找关于这个问题的博客文章或其他文章,但什么也找不到。

你知道这是否可行吗?

共有2个答案

邰钟展
2023-03-14

看看下面的例子

@RestController
public class HelloWorldController {

    @GetMapping("/hello")
    public ResponseEntity<String> sayHello() {

        return ResponseEntity.status(HttpStatus.CREATED).body("Hello World!");

    }
 }
尉迟韬
2023-03-14

您可以使用ResponseEntity。将/*状态代码*/替换为您想要的:

@GetMapping("/url")
@ResponseBody
public ResponseEntity<?> handlerMethod(/*parameters*/) {
    // ...
    return ResponseEntity.status(/*STATUS CODE*/).body(...);
}
 类似资料:
  • 问题内容: 这是我的用法- 另外,我在http GET周围放置了一个finally块- 这是我的堆栈跟踪- 我正在使用Quartz计划监视Http端点的工作。这是我的连接池配置 Maven依赖..工件版本 编辑 -好吧,通过不关闭finally块中的CloseableHttpClient,问题解决了。有人能说出为什么这样吗? 如果关闭客户端,为什么连接池会关闭? 是上面的closeablehttp

  • 我正在为一个Spring-Boot应用程序编写组件测试,以测试我的安全配置。因此,我正在运行测试,应该测试成功的响应以及“禁止”状态。我遇到的问题是,由于我的REST调用需要一个复杂的JSON,对于阻塞的调用,测试会失败,因为TestRestTemplate试图反序列化不存在的响应体。 我正在运行一个Spring-Boot应用程序,tests类的注释如下: 我试图测试一个应该返回用户列表的REST

  • 我正在尝试使用简单的Spring MVC项目,但我对Tom Cat有例外 类型异常报告 servlet MVC的消息servlet.init()-Dispatcher引发异常 说明服务器遇到内部错误,导致它无法完成此请求。 我的控制器: My Home.jsp

  • 我正在学习Spring MVC,当我试图运行html文件时,它会给出错误HTTP Status 500-引发异常 这是我的web.xml 这是我的Spring调度员Servlet 这是我的jsp页面 这是我的HelloController课程 这是我得到的一个例外 我正在使用Eclipse 4.5.1、Tomcat 8.0.30和Spring 4.2.3。

  • 我完成了这个教程(spring4和hibernate4),我还得到了这个消息: 谁能解释一下是什么问题吗?