Hallo zusammen,
habe das Problem, dass mein Response-Body immer null ist
Irgendwas mapped nicht. Ich hoffe jemand kennt sich mit SpringBoot aus und Resttemplate. Vermutlich hab ich bei den Annotationen was zerhauen :/
Edit: hatte die Annotationen auch über den Getter-Methoden, half auch nichts
Folgendes holt die Daten (mit String kommt da auch was)
[CODE] private ApiResponse callExternalApi(String kundenNummer, String password) {
String url = "https://www.domain.com/xmlapi/api.php?";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("cid", kundenNummer)
.queryParam("auth", password);
System.out.println(builder.toUriString());
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));
headers.setContentType(MediaType.TEXT_XML);
RestTemplate restTemplate = new RestTemplate();
HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<ApiResponse> response = restTemplate.exchange(builder.toUriString(), HttpMethod.GET, entity, ApiResponse.class);
return response.getBody();
}[/CODE]
und hier mein ApiResponse-Objekt:
[CODE]@XmlRootElement(name = "API_RESPONSE")
public class ApiResponse {
@XmlElement(name = "PRODUCTS")
private Products products;
//Getter, Setter, No-Arg-Constructor und Arg-constructor
}
}[/CODE]
und das Products-Objekt mit einer Liste an "Product"-Objekten
[CODE]public class Products {
@XmlElement(name = "PRODUCT")
private List<Product> product;
//Getter, Setter, Konstruktor
}
}[/CODE]
Und das XML was als Response kommt:
[CODE=xml]<API_RESPONSE>
<PRODUCTS>
<PRODUCT>
// weitere Werte
</PRODUCT>
</PRODUCTS>
<API_RESPONSE>[/CODE]
in der pom.xml hab ich :
[CODE=xml]<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.8</version>
</dependency>[/CODE]