创建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或您希望取消编组的实现。
那不是最好的解决方案,但可以为您提供帮助。