【发布时间】:2018-03-06 13:52:13
【问题描述】:
我有 utils 类,它以静态方法从外部 API 获取数据:
@Component
public class Util {
private Util() {
}
public static List<Movie> getMovies(){
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
String resourceURL = "< a loooong url>"
HttpEntity<String> entity = new HttpEntity<String>(headers);
ResponseEntity<Results> response = restTemplate.exchange(resourceURL, HttpMethod.GET, entity, Results.class);
Results results = response.getBody();
List<Movie> movies = results.getResults();
return movies;
}
}
我知道数据已从服务器正确获取,但我不知道为什么我不能将其传输到我的休息控制器:
@RestController
public class MovieController {
@RequestMapping(value ="/movies", method = RequestMethod.GET)
public List<Movie> getMovies(){
return Util.getMovies();
}
}
它返回给我 404 没有可用的消息..
有什么想法吗? ;)
问候
【问题讨论】:
-
HTTP 状态码 404 为“未找到”。这意味着您的请求与您注册的任何端点都不匹配。确保您的 GET 请求指向 localhost:port/movies。
-
一般来说,你的类而不是它的方法不应该是静态的。只需使用
@Component对其进行注释,Spring 就会创建一个实例,您可以将其注入到您的控制器中。我还建议将 Util 重命名为有意义的名称,例如 MovieService。是什么引发了 404、对 MovieController 或 Util restTemplate 调用的调用? -
可能是他的控制器方法中没有
@ResponseBody注解。 -
您如何尝试访问您的端点?