java - How to capture exceptions on a REST client? - Stack Overflow
Generally it's better to declare your method as returning a Response
object instead of a user-defined type, and set the data as the entity. Then if you want to indicate that an exception has happened, you can just pass that exception as the entity of the Response
you are returning.
e.g.
@GET @Path("/foo") public Response getFoo() { try { // do stuff return Response.ok(someData).build(); } catch (Exception e) { return Response.serverError().entity(e).build(); } }
You'll notice that this way you don't ever end up actually throwing an exception out of your method, but rather return an explicit 500 response with an exception as the entity. This way you can still throw exceptions out of your code, but they'll be handled nicely.
EDIT
I'm not sure what your client wrapper code is doing, but you can pass the expected response data type into your call with the normal REST client:
Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://foo.com/foo"); String response = target.request().get(String.class);
or you can also pull it out of the Response
using the readEntity()
method:
Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://foo.com/foo"); Response response = target.request().get(); String entity = response.readEntity(String.class);
It sounds like what you need to do is check the return code, and then parse the entity as a either a WrapperTransmissaoRetorno
or a WebApplicationException
depending on what code was returned:
Response response = client.transmitir(wrapperRecepcao); if (response.getStatus() == Response.Status.OK.getStatusCode()) { // 200 WrapperTransmissaoRetorno retorno = response.readEntity(WrapperTransmissaoRetorno.class); // do stuff } else if (response.getStatus() == Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()) { // 500 WebApplicationException e = response.readEntity(WebApplicationException.class); // do stuff } // etc for other response codes
Read full article from java - How to capture exceptions on a REST client? - Stack Overflow
No comments:
Post a Comment