我创建了一个spring-boot-troubleshooting repo on GitHub,可以完全重现此错误。
我正在构建一个基于Spring Boot的REST服务,该服务仅暴露RESTful API端点,绝对没有UI /视图/ HTML页面。
你可以在那个repo的build.gradle
中看到我依赖的唯一两个Spring Boot依赖项是:
,'org.springframework.boot:spring-boot-starter-jetty'
,'org.springframework.boot:spring-boot-starter-actuator'
所以没有视图相关(Thymeleaf等)。
当您运行该应用并打开浏览器转到FizzbuzzResource
网址时,您将获得:
Problem accessing /error. Reason:
Not Found
然后在控制台上你会看到:
WARN o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/v1/fizzbuzz/12345] in DispatcherServlet with name 'dispatcherServlet'
我想知道为什么 Spring抱怨基于HTML的PageNotFound错误,这应该是一个纯粹的REST服务,当然,我很想知道修复是什么得到这个工作并正确返回我的Fizzbuzz资源!
答案 0 :(得分:0)
你需要启用web mvc并使ApiVersionRequestMappingHandlerMapping容器中的bean,否则Spring不会使用你的ApiVersionRequestMappingHandlerMapping#getMappingForMethod
。