Служба сервиса и клиента Spring MVC. Я ищу лучший способ справиться с ошибками!Служба сервиса и клиента Spring MVC. Я ищу лучший способ справиться с ошибками
Иногда я хотел бы вернуть сообщение об ошибке клиенту или код состояния, но я не знаю hiow. Может кто-то пожалуйста, скажите мне, как найти лучший способ борьбы с ошибками и messags ошибок для Spring REST службы и клиента ..
Вот мой код услуги:
@RequestMapping(value = "/{name}", method = RequestMethod.GET)
@ResponseBody
public User getName(@PathVariable String name, ModelMap model) throws ResourceNotFoundException
{
logger.debug("I am in the controller and got user name: " + name);
/*
Simulate a successful lookup for 2 users, this is where your real lookup code would go
*/
if ("user2".equals(name))
{
return new User("User2 Real Name", name);
}
if ("user1".equals(name))
{
return new User("User1 Real Name", name);
}
throw new ResourceNotFoundException("User Is Not Found");
}
@ExceptionHandler(ResourceNotFoundException.class)
public ModelAndView handleResourceNotFoundException(ResourceNotFoundException ex)
{
logger.warn("user requested a resource which didn't exist", ex);
return new ModelAndView(jsonView, "error", "user requested a resource which didn't exist");
}
Теперь вот код для клиент:
Map<String, String> vars = new HashMap<String, String>();
vars.put("name", "user1");
/**
*
* Doing the REST call and then displaying the data/user object
*
*/
RestTemplate restTemplate = new RestTemplate(commons);
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
try
{
User jsonreturn = restTemplate.getForObject("http://" + mRESTServer.getHost() + ":8080/json/{name}", User.class, vars);
LOGGER.debug("return object: " + jsonreturn.toString());
}
catch(Exception e)
{
LOGGER.error("error: " + e.toString());
}
Я хочу найти так, как вернуть код состояния и сообщение, если пользователь не найден, и плюс мой код клиента получает эту ошибку:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Unrecognized field "error"
Ответ на этот вопрос может помочь вам. http://stackoverflow.com/questions/5097134/spring-exceptionhandler-does-not-work-with-responsebody – digitaljoel
это будет работать на стороне сервера, но для клиента я получаю это сообщение .. rg.springframework .http.converter.HttpMessageNotReadableException: не удалось прочитать JSON: непризнанное поле «ошибка» – user2428795
в catch на вашем клиенте теперь вы можете проанализировать свою пользовательскую ошибку JSON для соответствующего представления объекта Java и получить то, что вы хотите оттуда, и принять соответствующие решения , – digitaljoel