Announcement Announcement Module
Collapse
No announcement yet.
Server-side exception and RestTemplate Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Server-side exception and RestTemplate

    I'm using RestTemplate on the client and Spring MVC/Jackson on the server-side to stream JSON to the client. However I'm wondering how I can inform the client that a server-side exception occurred?

    Can I use the @ExceptionHandler annotation on a method to stream back a simple JSON string and let RestTemplate handle it? I guess not since RestTemplate expects an Object type (eg. Collection<Station>). It will fail to marshall/unmarshall it.

    Code:
    @RequestMapping(value = "/station/{code}")
        @ResponseBody
        public Collection<Station> validateStation(@PathVariable String code) {
            return getService().retrieveStations(Arrays.asList(new String[] { code }));
        }
    Code:
    @ExceptionHandler(ServiceException.class)
        public void handleException(ServiceException e, HttpServletResponse r) {
            try {
                r.setContentType("application/json");
                final String json = new JSONObject().put("error", true).put("errorMessage", e.getMessage()).toString();
                IOUtils.streamBack(json, r);
            } catch (Exception e1) {
                log.error(e1.getMessage(), e);
            }
        }
    I considered injecting an errorHandler into the RestTemplate, but how could this object be of any help as I want to stream the JSON directly to the AJAX client and I'm not in the proper context?

    I'm really stuck on this although it might be pretty straightforward ;-).

    Your input is much appreciated.
Working...
X