Hi,
On 26/03/12 18:26, Ganesan, Chandru wrote:
The problem with the following code is, if the resource is not found using the
get call, it throws an IOException as follows. In this case I can't get the
response from the webclient right after the get call. Any suggestions?
Caused by: java.io.IOException: HTTP response '404: Not Found'
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2187)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
Have a look please at this page:
http://cxf.apache.org/docs/jax-rs-client-api.html
When the typed response is expected and the HTTP error code is returned
then the exception will be thrown. You can choose between writing a
typed code such as
try {
String s = wc.get(String.class);
} catch (ServerWebApplicationException ex) {
ex.getResponse();
}
or
Response r = wc.get();
You can register a ResponseReader provider to simplify reading the data
directly from Response.
As far as the thread safety is concerned: the simplest option is to
simply clone existing WebClient or proxy using WebClient factory
constructors, a very minor overhead will be added. Other options are
also available, please check the wiki,
wc.reset() is only needed to be called if the headers or queries used
during the previous call won't be needed for the next call.
HTH, Sergey
-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]]
Sent: Monday, March 26, 2012 11:01 AM
To: [email protected]
Subject: Re: How to parse string from javax.ws.rs.core.Response?
Hi
On 26/03/12 16:49, Ganesan, Chandru wrote:
Hi
I'm using a simple rest client that executes a query and gets String response.
I'm using WebClient.get(...) to execute the REST call as follows.
Response jsonResponse = oneViewWebClient.get();
I do see the response code of 200 in the jsonResponse object but unable to
access the string value from the returned response. In this case, I'd like to
parse the response using jsonResponse.getEntity(..) I'm not using JAXB to
deserialize the object, since it's a string is there a simple method to parse
the response?
String str = oneViewWebClient.get(String.class);
should do it, you can also get the Response:
oneViewWebClient.getResponse()
Cheers, Sergey
Thanks
Chandru
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com