Hi
On 02/07/12 21:45, forumssj wrote:
Hi,

    I am using CXF 2.5.3 SNAPSHOT version and calling a REST webservice using
webclient. The webservice looks like this :
        @Produces("application/json")
        @POST
        @Path("/EditUser")
        public Status editUser(@FormParam("sessionid") String sessionid,
@FormParam("user") User user);

   The code to call the WS is as follows:

         WebClient wc =
WebClient.create(address,Collections.singletonList(new
JacksonJsonProvider()));
         wc.path("/EditUser");
         Status status = wc.post(new Form().set("sessionid",
strSessionId).set("user", userDataJSON),         Status.class);

   I get the following exception :
org.apache.cxf.interceptor.Fault: .No message body writer has been found for
class : class org.apache.cxf.jaxrs.ext.form.Form, ContentType :
application/xml.

The issue here is that WebClient assumes a provided Object (Form) has the (default) application/xml media type given that no Content-Type of the outgoing payload has been set up, example, no

webClient.type(MediaType.APPLICATION_FORM_URLENCODED);

has been called.

However I'm pretty sure starting from CXF 2.5.4 or at least CXF 2.6.0,
MediaType.APPLICATION_FORM_URLENCODED is allocated by default for objects of type Form if no Content-Type is already set up.

Please try CXF 2.5.4 or simply add a webClient.type() invocation


Cheers, Sergey
  What could be going wrong here?

Regards,
SJ


--
View this message in context: 
http://cxf.547215.n5.nabble.com/POSTing-parameters-with-WebClient-post-throws-Exception-No-message-body-writer-tp5710561.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to