我将 CXF 与 JacksonJsonProvider 一起用于我的 REST 服务。我有一个测试方法如下
@POST
@Path("/book/{id}")
@Consumes({"application/json, multipart/form-data, application/x-www-urlencoded"})
@Produces({"application/json"})
public boolean setOwner(Book book) {
System.out.println(book.getName());
return true;
}
现在,如果我使用原始 JSON 字符串发出 POST 请求,如下所示
{"Book":{"name":"Book name","publisher":"Book publisher"}}
请求得到正确处理,因为我在发出请求时使用 Content-Type 作为“应用程序/json”。
但是由于我正在与外部服务集成,因此我收到了 multipart/form-data 或 application/x-www-urlencoded ,杰克逊中没有任何 afaik 可以处理它。如果有人能指出我正确的方向,那就太好了。
我可以使用 Jettison(CXF 的一部分)管理 multipart/form-data,但我想使用 Jackson。