Wołam usługi REST, która zwraca XML, a przy użyciu Jaxb2Marshaller
do organizowania moje zajęcia (np Foo
, Bar
, etc). Więc mój klient kod wygląda tak:Jak skonfigurować Wiosny RestTemplate powrotu NULL podczas stanu HTTP 404 jest zwracany
HashMap<String, String> vars = new HashMap<String, String>();
vars.put("id", "123");
String url = "http://example.com/foo/{id}";
Foo foo = restTemplate.getForObject(url, Foo.class, vars);
Gdy look-up po stronie serwera nie zwraca 404 wraz z niektórych XML. W rezultacie otrzymuję wyrzucony UnmarshalException
, ponieważ nie może odczytać XML.
Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"exception"). Expected elements are <{}foo>,<{}bar>
Ciało odpowiedź brzmi:
<exception>
<message>Could not find a Foo for ID 123</message>
</exception>
Jak mogę skonfigurować RestTemplate
tak że RestTemplate.getForObject()
Przywraca null
jeśli 404 się dzieje?
'getForObject' domyślnie powinny być rzucanie' HttpClientErrorException' z 404. Jak pan skonfigurowany 'RestTemplate'? –
@SotiriosDelimanolis Nie mam już dostępu do kodu, ale domyślne zachowanie, które opisujesz, brzmi tak, jak oczekiwałem w tym czasie. (Powinienem nabrać nawyku mówienia o wersjach w przyszłych pytaniach.) – vegemite4me