[aerogear-dev] [aerogear-controller] Error Route responses

Daniel Bevenius daniel.bevenius at gmail.com
Thu Jan 3 02:20:24 EST 2013


JSON Responses for Error Routes

We recently added support for routes to be able to produce responses, other
than original MVC forwarding to a view. This addition meant that a route
could specify the media types it produces, and a client could specify the
desired media types using the HTTP Accept header, and get back a response
body with that type.
But this only worked for normal routes and not for error routes which is
what AEROGEAR-515 <https://issues.jboss.org/browse/AEROGEAR-515> has added.

You can now specify that your error routes produce different types:

route()
      .on(Exception.class)
      .produces("text/html", "application/json")
      .to(Error.class).index(param(Exception.class));
route()
      .from("/throwException")
      .on(RequestMethod.GET)
      .produces("text/html", "application/json")
      .to(Error.class).throwException();

This would enable you to produce a html response by accessing
throwException<http://localhost:8080/aerogear-controller-demo/throwException>
in
aerogear-controller-demo.

You can also specify that you want the response as *application/json* and
calling the same route as above:

curl -i -H "Accept: application/json" -X GET
"http://localhost:8080/aerogear-controller-demo/throwException"

GET Exception application/json:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 28
Date: Thu, 03 Jan 2013 06:52:56 GMT
"{exception:Demo Exception}"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20130103/483461b2/attachment.html 


More information about the aerogear-dev mailing list