我们在Apache CXF中实现了一个REST服务,可以为我们的客户端公开,如下所示:
@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.TEXT_PLAIN)
@Path("/process")
public Response processBean(Bean bean);
Bean 对象使用@XmlRootElement注释,所有这些都很有用。问题是客户端没有设置正确的内容类型(应该是“application / xml”,但客户端设置“application / x-form-urlencoded”)。
Apache CXF没有将该方法重新定义为(错误的)调用的有效方法,因为内容类型错误。如果我将@Consumes更改为“ / 或application / x-www-form-urlencode”,Apache CXF将不知道如何解析POST有效负载(无MessageBodyReader)。 客户端最终将更改标题,但我们现在需要快速修复。
有什么想法吗?我需要使用一些XmlMessageBodyReader吗?