У меня следующая структура кода: Config.java
public class Config {
private Map<Context, Set<String>> mapStrings;
public Map<Context, Set<String>> getMapStrings() {
return mapStrings;
}
public void setMapStrings(Map<Context, Set<String>> mapStrings) {
this.mapStrings = mapStrings;
}
public static class Context {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
код контроллера:
@RestController("somepath")
@RequestMapping("someMapping")
public class ConfigurationController{
@GetMapping("")
public Config get(){
Config config = new Config();
return config;
}
}
Тестовый код:
TestRestTemplate restTemplate
@Test
public void test(){
String url="url";
ResponseEntity<Config> response = restTemplate.exchange(
String.format(url), HttpMethod.GET, null,
Config.class);
assertNotNull(response);
}
pom.xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
Теперь, несмотря на то, что в моем pom есть зависимость от jackson-databind, я получаю эту ошибку:
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class Config] and content type [application/json;charset=UTF-8]
Я понимаю, что эта ошибка из-за карты, которую я использовал в моемconfig.java.Если я преобразую эту карту в карту>, она исчезнет.поэтому по какой-то причине он не может конвертировать мой пользовательский класс Context в json.Может кто-нибудь помочь?Я использую весеннюю загрузку.Я бы предпочел использовать конвертер http-сообщений, предоставленный Spring / Jackson, вместо того, чтобы писать собственный.