JAXB:如何使EntityHolder与JSON请求一起工作

时间:2014-08-27 02:06:29

标签: java xml json jaxb

创建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类混淆。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。

我没有找到一个好的但功能性的解决方案。

您可以使用@Context注入请求并获取此类正文内容。

所以,你可以使用jackson,gson或者你更愿意拆开它们的实现。

这不是最好的解决方案,但它可以帮到你。