Hi
On 04/11/11 15:10, Carlsson-EXTERNAL Carl-johan wrote:
We got a REST service implemtented in Apache CXF available for our client 
exposed like this:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
@Path("/process")

public Response processBean(Bean bean);
The Bean object is annotated with @XmlRootElement and all this works great. The problem is that the 
client is not setting the right content-type header (should be "application/xml" but 
client sets "application/x-form-urlencoded").

Apache CXF is not regonizing the method as a valid method for the (incorrect) call since 
the content-type is wrong. If I change @Consumes to "*/*" Apache CXF does not 
know how to parse the POST payload (no MessageBodyReader). The client will eventually 
change the header but we need a quick fix for now.


The quick fix is to register a RequestHandler filter or CXF in interceptor which will replace Message.CONTENT_TYPE property on a current message with "application/xml". If adding a ?_ctype=xml property to the POST request is an option for the client then it will do it too

HTH, Sergey

Any ideas?

Regards,
Carljohan


Reply via email to