Я вызываю службу REST, которая возвращает XML, и используя Jaxb2Marshaller
для маршалирования моих классов (например, Foo
, Bar
и т.д.). Таким образом, мой клиентский код выглядит так:
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);
При сбое поиска на стороне сервера он возвращает 404 вместе с некоторым XML. В итоге я получаю UnmarshalException
, который не может прочитать XML.
Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"exception"). Expected elements are <{}foo>,<{}bar>
Тело ответа:
<exception>
<message>Could not find a Foo for ID 123</message>
</exception>
Как настроить RestTemplate
так, чтобы RestTemplate.getForObject()
возвращал null
, если происходит 404?