创建api调用如下所示:

@POST
@Path("/create")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response createEntity(EntityHolder<Entity> entity){}


如果发送xml请求,则可以正常工作,但如果是Json有效负载,则抛出该请求

ERROR  - caught an UnrecognizedPropertyException in the REST layer
21:35:36,836 INFO  [stdout] (http-/0.0.0.0:8080-1) com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "someProperty" (class com.sun.jersey.core.provider.EntityHolder), not marked as ignorable (0 known properties:


看起来杰克逊将EntityHolder与实际的Entity类混淆了。

最佳答案

我有同样的问题。

我没有找到一个好的但实用的解决方案。

您可以使用@Context注入Request并获取主体内容,如下所示。

因此,您可以使用jackson,gson或您希望取消编组的实现。

那不是最好的解决方案,但可以为您提供帮助。

07-25 20:28