我有以下内容:
@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.050 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;
为什么?
答案 0 :(得分:5)
您的基本URI /api
似乎未在您的配置中正确设置,这就是调度程序无法找到正确映射的原因。
由于您的所有请求都有/api
基础,我建议您在控制器中添加@RequestMapping注释:
@RepositoryRestController
@RequestMapping("/api")
public class DataSetController {
}
答案 1 :(得分:0)
您已说过在配置中使用了base-uri
,但它应该是spring.data.rest.base-uri
。