为什么我的春季启动@RequestMapping没有工作?

时间:2015-08-21 22:59:11

标签: java spring spring-mvc spring-boot

我有以下内容:

@RepositoryRestController
public class DataSetController {

     @RequestMapping(value = "/cars/test", method = RequestMethod.GET)
        public String testFetch() {
         return "HELLO";

     }
}

@RepositoryRestResource
public interface DataSetRepository extends PagingAndSortingRepository<DataSet, Integer>, QueryDslPredicateExecutor<DataSet> {}

启动时的日志表示以下内容:

  

2015-08-21 18:49:46.0​​50 INFO 52448 --- [主要]   o.s.d.r.w.RepositoryRestHandlerMapping:映射   &#34; {[/汽车/试验],方法= [GET]}&#34;到公共java.lang.String   com.example.hello.dataset.DataSetController.testFetch()

我的配置中的基础uri是:

base-uri:/ api

所以我应该能够获得localhost:8080 / api / cars / test

但这是我在日志中得到的内容:

  

2015-08-21 18:58:10.847 WARN 52476 --- [nio-8080-exec-1]   o.s.web.servlet.PageNotFound:找不到HTTP的映射   请求带有名称的DispatcherServlet中的URI [/ api / cars / test]   &#39; DispatcherServlet的&#39;

为什么?

2 个答案:

答案 0 :(得分:5)

您的基本URI /api似乎未在您的配置中正确设置,这就是调度程序无法找到正确映射的原因。

由于您的所有请求都有/api基础,我建议您在控制器中添加@RequestMapping注释:

@RepositoryRestController
@RequestMapping("/api")
public class DataSetController {

}

答案 1 :(得分:0)

您已说过在配置中使用了base-uri,但它应该是spring.data.rest.base-uri