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.