创建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
类混淆。
答案 0 :(得分:1)
我遇到了同样的问题。
我没有找到一个好的但功能性的解决方案。
您可以使用@Context注入请求并获取此类正文内容。
所以,你可以使用jackson,gson或者你更愿意拆开它们的实现。
这不是最好的解决方案,但它可以帮到你。