您好我希望我的后端(spring-data-rest)应用程序生成一些示例数据并通知前端。但是,存储库事件处理程序只是REST,所以我尝试编写一个restTemplate但是失败了。
@Scheduled(fixedRate = 5000)
public void addCounter() throws Exception {
String url = String.format("http://localhost:%d/%s/counters", 8080, api);
Counter counterExpected = new Counter('xxx', random.nextInt(100));
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(counterExpected);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(jsonString, headers);
restTemplate.postForObject(url, entity, String.class);
}
错误:
Description:
Field restTemplate in ScheduledTask required a bean of type 'org.springframework.boot.test.web.client.TestRestTemplate' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.boot.test.web.client.TestRestTemplate' in your configuration.
此错误有意义,因为我在运行时应用程序中使用TestTestTemplate而不是测试范围。
我的问题是: 是否可以将addCounter()方法更改为更简单的方法,如:
counterRepository.save(newCounter);
/* Raise AfterCreate event */
如果是,那怎么样?
如果没有,那么有没有其他方法来做HTTP帖子而不是使用restTemplate?
答案 0 :(得分:0)
我的坏。我应该使用
import org.springframework.web.client.RestTemplate;
而不是
import org.springframework.boot.test.web.client.TestRestTemplate;