Hi
This is to do with a default CXF JSONProvider which is Jettison based.
Jettison, historically, escapes forward slashes, I don't know why, it
was there when I started maintaining it.
What you can do is to configure CXF JSONProvider not to do it, set its
'escapeForwardSlashesAlways' to false.
Or use a Jackson provider instead (if you do - Make sure Jettison is on
on the classpath)
HTH, Sergey
On 29/12/15 14:40, Vincenzo D'Amore wrote:
Hi All,
I don't understand why when I receive a json encoded string this is not
decoded automatically.
I wrote this code:
Client client = ClientBuilder.newClient().register(JSONProvider.class);
WebTarget target = client.target("http://example.org/rest/service1");
target = target.queryParam("method", "method1");
Entity<EndpointRequest> entity = Entity.entity(new
EndpointRequest("0000"),
MediaType.APPLICATION_JSON);
Response response = builder.post(entity);
System.out.println( response.getStatus() );
if (response.getStatus() == 200) {
// The problem comes here
String basePath = response.readEntity(String.class);
System.out.println( basePath );
}
The request is successfully executed but basePath contains
"\/opt\/local\/application\/rest\/" (backslash and double quotes included)
basePath should instead contain this: /opt/local/application/rest/
It seems to me, the json deserialization hasn't be triggered when it should.
Thanks in advance for your help,
Vincenzo
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/