@RestController 返回 404 not found 除了在主类中
Posted
技术标签:
【中文标题】@RestController 返回 404 not found 除了在主类中【英文标题】:@RestController returns 404 not found except in main class 【发布时间】:2021-12-27 01:13:35 【问题描述】:这是我的项目结构:
当我尝试通过邮递员在 ApartmentController 中调用此 get API 时,我收到 404 错误。
@RestController
@RequestMapping("/api/apartment")
class ApartmentController(private val apartmentService: ApartmentService)
@GetMapping
fun getAllApartments(apartment: Apartment): List<Apartment>
return apartmentService.getAllApartments()
@PostMapping
fun createApartment(apartment: Apartment): Apartment
return apartmentService.createApartment(apartment)
但是,当我在主类 LeaderRealEstateApplication 中执行相同操作时,我得到了 200 个响应。
@SpringBootApplication()
class LeaderRealEstateApiApplication
fun main(args: Array<String>)
runApplication<LeaderRealEstateApiApplication>(*args)
@RestController
@RequestMapping("/api/apartments")
class TestResource(private val apartmentService: ApartmentService)
@GetMapping
fun test(): List<Apartment>
return apartmentService.getAllApartments()
不确定我做错了什么,我尝试将其添加到我的 SpringBootApplication
注释中:
@SpringBootApplication(scanBasePackages = ["com.leaderrealestate"])
【问题讨论】:
你能把你所有类的包声明都加进去吗?谢谢! 【参考方案1】:在您的第二种方法中,您有@RequestMapping("/api/apartments")
,但在您的第一种方法中,您有@RequestMapping("/api/apartment")
。请注意第一个 @RequestMapping
中的额外 s
。如果这不是您问题中的类型,这可能是 404 的原因。
【讨论】:
不,我添加了不同的名称,因为启动时的 spring 告诉我已经定义了“/api/apartment”的路径。所以在邮递员中,我调用“/api/apartments/”并得到结果,然后删除 s 并得到 404。 明白了,那你能把你所有的类的包声明都加进去吗?谢谢!以上是关于@RestController 返回 404 not found 除了在主类中的主要内容,如果未能解决你的问题,请参考以下文章
spring bootspring boot中使用@RestController不起作用,不返回json,依旧去找访问接口的请求地址对应的页面
Junit MockMvc 使用 URL 中的路径变量执行 POST,返回 404 未找到
spring 控制器返回 404 并带有 post 和 file 以生成响应实体