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/

Reply via email to