首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Boot 404在调用尝试浏览rest控制器时

Spring Boot中的404错误通常表示客户端能够与服务器通信,但服务器无法找到请求的资源。在尝试访问REST控制器时遇到404错误,可能是由于以下几个原因:

基础概念

  • REST控制器:使用Spring MVC编写的控制器,它处理HTTP请求并返回响应。
  • 404错误:HTTP状态码,表示服务器无法找到请求的资源。

可能的原因及解决方法

1. 控制器类未被扫描到

确保你的控制器类位于Spring Boot应用程序的组件扫描路径下。

代码语言:txt
复制
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

控制器类应该在这个包或其子包下:

代码语言:txt
复制
@RestController
@RequestMapping("/api")
public class MyController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

2. 请求路径错误

确保客户端请求的路径与控制器中定义的路径匹配。

代码语言:txt
复制
@GetMapping("/hello") // 客户端应请求 /api/hello

3. 静态资源配置问题

如果应用程序中有静态资源,确保它们被正确配置。

代码语言:txt
复制
spring.resources.static-locations=classpath:/static/

4. 端口号配置错误

检查应用程序是否在预期的端口上运行。

代码语言:txt
复制
server.port=8080

5. 应用程序上下文路径配置

如果设置了应用程序上下文路径,确保客户端请求时包含了该路径。

代码语言:txt
复制
server.servlet.context-path=/myapp

客户端应请求 /myapp/api/hello

6. 控制器方法签名错误

确保控制器方法的签名正确,没有拼写错误或其他语法问题。

示例代码

以下是一个完整的示例,展示了如何设置一个简单的Spring Boot REST控制器:

代码语言:txt
复制
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@RestController
@RequestMapping("/api")
class MyController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

应用场景

  • Web服务:构建RESTful API供其他服务或前端应用调用。
  • 微服务架构:每个微服务可以有自己的REST控制器来处理特定的业务逻辑。

优势

  • 简化配置:Spring Boot自动配置了许多常用设置,减少了手动配置的工作量。
  • 快速开发:内置的Tomcat服务器和对各种库的支持使得开发和部署变得迅速。
  • 易于扩展:可以通过添加依赖来轻松扩展应用程序的功能。

通过以上步骤和检查点,通常可以解决Spring Boot中REST控制器导致的404错误。如果问题仍然存在,建议查看应用程序的日志文件,以获取更多详细的错误信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot REST API错误处理指南

Boot REST API Error Handling 作者:BRUNO LEITE 翻译:雁惊寒 文章正文 API在提供错误消息的同时进行适当的错误处理,是一个非常有用的功能,因为这能让API...本文将介绍在使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...Spring框架的MVC模块在错误处理方面提供了一些很不错的功能,但是这些功能需要由开发人员主动调用,才能返回对API客户端的有具体意义的响应。 我们来看一下这个Spring Boot默认响应的例子。...这样我们可以在一个地方定义如何处理这样的异常,当ControllerAdvice覆盖的类抛出异常时,这个处理程序就会被调用。...附录 译文来源:Spring Boot REST API错误处理指南-csdn

3.3K20
  • 第五十二章:基于SpringBoot2使用Rest访问MongoDB数据

    在之前项目中我们想要读取MongoDB内的内容需要使用MongoDBTemplate来完成数据的CRUD,那如果我们想要通过RestController的形式获取MongoDB内的数据就更麻烦了,还需要自行去创建对应的控制器...Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Boot 核心技术章节源码 Spring Boot 核心技术简书每一篇文章码云对应源码 003 Spring...(源码位置:第五十一章源码) 改造CustomerRepository spring-boot-starter-data-rest会自动扫描添加@RepositoryRestResource注解的接口...,自动将该接口映射为一系列可通过rest访问的请求路径,这里说到一系列,我们在测试的时候会讲到为什么说是一系列!!!。...测试 /{repository} 映射路径 你如果使用Windows系统直接打开浏览器输出地址就可以看到返回的内容,如果你使用Linux或者OS X系统可以在Terminal使用curl命令查看返回内容

    94810

    知识点-Spring Boot 统一异常处理汇总

    在实际开发中,我们会遇到很多异常,在发生异常的时候Spring Boot默认提供了错误页面展示给用户。看似比较友好,其实页面很丑。...2.png 以前用Spring MVC时都是直接配置web.xml 404 /WEB-INF...接口处理 在开发rest接口时,我们往往会定义统一的返回格式,列如: { "status": true, "code": 200, "message": null, "data": [...,然后封装好返回格式,返回给调用方 最后关键的一步是在spring boot的配置文件中加上如下配置: #出现错误时, 直接抛出异常 spring.mvc.throw-exception-if-no-handler-found...=true #不要为我们工程中的资源文件建立映射 spring.resources.add-mappings=false 然后我们调用一个不存在的接口时,返回的错误信息就是我们自定义的那种格式了 {

    87320

    在 Spring Boot 项目中使用 Swagger 文档

    Swagger UI 呈现出来的是一份可交互式的 API 文档,我们可以直接在文档页面尝试 API 的调用,省去了准备复杂的调用参数的过程。...下面我们就将一步一步地在 Spring Boot 项目中集成和使用 Swagger,让我们从准备一个 Spring Boot 的 Web 项目开始吧。...3.3 验证 至此,我们已经成功的在 Spring Boot 项目中集成了 Swagger2,启动项目后,我们可以通过在浏览器中访问 http://localhost:8080/ v2/api-docs...五、高级配置 5.1 文档相关描述配置 通过在控制器类上增加@Api 注解,可以给控制器增加描述和标签信息。...结束语 在本教程中,我们学会了如何使用 Swagger 2 来生成 Spring Boot REST API 的文档。

    1.4K40

    Spring国际认证指南|了解如何使用 AngularJS 检索网页数据

    AngularJS 客户端将通过index.html在浏览器中打开文件来访问,并将在以下位置使用接受请求的服务: http://rest-service.guides.spring.io/greeting...rest-service.guides.spring.io 上的服务运行CORS 指南中的代码,稍作修改:对/greeting端点开放访问,因为应用程序@CrossOrigin在没有域的情况下使用。...你需要什么 约15分钟 最喜欢的文本编辑器 现代网络浏览器 互联网连接 创建一个 AngularJS 控制器 首先,您将创建将使用 REST 服务的 AngularJS 控制器模块: public/hello.js...它使用该$http组件在“/greeting”处使用 REST 服务。...Boot CLI 运行该应用程序: 春季运行 app.groovy 应用程序启动后,在浏览器中打开http://localhost:8080 ,您会在其中看到: 每次刷新页面时,ID 值都会增加。

    2.4K30

    Spring国际认证指南|了解如何使用 jQuery 检索网页数据。

    将通过index.html在浏览器中打开文件来访问 jQuery 客户端,并将在以下位置使用接受请求的服务: http://rest-service.guides.spring.io/greeting...你需要什么 约15分钟 最喜欢的文本编辑器 现代网络浏览器 互联网连接 创建一个 jQuery 控制器 首先,您将创建将使用 REST 服务的 jQuery 控制器模块: public/hello.js...这指示 jQuery 在方法完成时执行匿名函数,并从完成的 AJAX 请求中$.ajax()传递结果。...为了从 Spring Boot 的嵌入式 Tomcat 服务器提供静态内容,您还需要创建最少量的 Web 应用程序代码,以便 Spring Boot 知道启动 Tomcat。...Boot CLI 运行该应用程序: 春季运行 app.groovy 应用程序启动后,在浏览器中打开http://localhost:8080 ,您会在其中看到: 每次刷新页面时,ID 值都会增加。

    2K40

    微服务架构之Spring Boot(三十四)

    如果您创建自己的 ConfigurableWebBindingInitializer @Bean ,Spring Boot会自动配置Spring MVC以使用它。...28.1.10模板引擎 除REST Web服务外,您还可以使用Spring MVC来提供动态HTML内容。Spring MVC支持各种模板技术,包括Thymeleaf,FreeMarker和 JSP。...Spring Boot包括对以下模板引擎的自动配置支持: FreeMarker的 Groovy的 Thymeleaf 胡子 如果可能,应该避免使用JSP。...从主方法在IDE中运行应用程序会产生与使用Maven或 Gradle或其打包的jar运行应用程序时不同的顺序。这可能导致Spring Boot无法在类路径上找到模板。...小心:当部署到servlet容器时,Spring Boot使用其错误页面过滤器将具有错误状态的请求转发到相应的错误页面。如果尚未提交响应,则只能 将请求转发到正确的错误页面。

    98510

    SpringMvc(一)-初识

    -- spring-mvc end --> 1.2 web.xml 前端核心控制器(dispatcherServlet) 配置初始化参数,指定springMvc的核心配置文件,目的就是自动创建容器对象...自动创建前端核心控制器的实例-DispatcherServlet,同时自动读取配置的spring-mvc.xml核心配置文件,创建容器对象,并扫描组件加入到容器中; 即:将控制器组件(加了@Controller...注解)加入到容器中,并自动解析加入的请求控制器,可以得到请求处理url和请求处理方法的映射; 2、客户端浏览器,发送请求:http://localhost:8080/springmvc-01/helloMvc...,进行业务处理,如果没有找到,直接报错误404; 5、目标请求处理方法,处理完业务后,返回一个目标视图的名称-success 6、返回的目标视图名称,仍然会交给 前端核心控制器 进行视图解析(自动调用容器中添加的视图解析器解析...; 写法2:指定当前请求必须携带的参数名和对应的参数值,可以指定多个(大括号,逗号分割),如果请求没有携带params指定的所有参数,请求404,如果请求携带的参数及对应的参数值不匹配,请求404;

    69320

    Spring MVC 到底是如何工作的?

    Servlet作为Java Web应用程序的基础 那么,当在浏览器中输入http:// localhost:8080/时,按Enter键,然后请求到达Web服务器,实际发生了什么?...你如何从这个请求中看到浏览器中的Web表单? 鉴于该项目是一个简单的Spring Boot应用程序,因此可以通过Spring5Application运行它。...在调用视图的render()方法后,Spring最终通过发送HTML页面到用户的浏览器来完成请求处理。 REST支持 除了典型的MVC场景之外,我们还可以使用框架来创建REST Web服务。...为了进一步简化REST API的创建,Spring引入了@RestController注解。...默认情况下,这很方便地假定了@ResponseBody语义,并避免在每个REST控制器上的明确设置: import org.springframework.web.bind.annotation.RestController

    1.4K30

    使用Spring Boot 2.0,Prometheus和Grafana进行监视(第1部分-REST API)

    概要: 阅读本教程,以了解如何使用Spring Boot 2.0,Prometheus和Grafana为CRUD创建REST API。...在第1部分中,我们将使用Spring Boot 2.0,JPA,H2数据库和SWAGGER UI创建文档,从而为CRUD操作创建REST API。...我们将创建一个简单的应用程序,该应用程序将为要使用的人员实体提供基于REST的CRUD操作 H2:作为我们的基础数据库 Spring Boot Web:用于创建REST API Spring Data...或在STS中,您可以在项目浏览器中的项目上单击鼠标右键 ,然后选择Run As,然后 选择Spring Boot App 。...mvn clean spring-boot:run 现在浏览URL http://localhost:9000 ,您应该能够看到 SWAGGER UI 您已经成功创建了用于CRUD操作的REST

    95430

    springBoot入门简介,使用spring initializer快速创建spring Boot项目

    3,导入spring-boot相关依赖: 依赖的配置就不用手写了,到官网找指导案例,如这个网址:https://spring.io/guides/gs/rest-service/ 把箭头指的菜单点开就行了...spring boot 将所有的功能场景提取出来,做成一个个的starters(场景启动器),需要时只需要在项目中引入这些starters相关的场景,然后所有的依赖都会导进来。...创建完成后, (1)我们看新项目中的pom.xml,会有相应的启动器依赖: (2)并且主程序居然也给我们自动生成了: 下面写个controller来测试下, 注意要和控制器在同一个目录级别创建controller...包,如果是在java目录下,这启动后页面上会报404(先这样记,后面再找优化方法,) controller的 内容如下: package com.example.springboot.controller...org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; //@ResponseBody //加在这里说明这里控制器的所有方法返回的数据直接写给浏览器

    1.3K30
    领券