Java JAX-RS:PUT/POST和JSON数组不会反序列化为类型化列表

Java JAX-RS:PUT/POST和JSON数组不会反序列化为类型化列表,java,json,rest,jackson,jax-rs,Java,Json,Rest,Jackson,Jax Rs,我试图将JSON数组放入JAX-RS服务(使用Jackson作为JSON提供者)。服务声明如下: @PUT public Response setList(List<MyPojo> pojoList) { ... } @PUT 公共响应集合列表(列表pojoList){ ... } 调用该方法时,pojoList的成员的类型为LinkedHashMap,而不是MyPojo。因此Jackson将列表反序列化为一个通用的“映射列表”,而不是使用声明的类型 我知道Jackson

我试图将JSON数组放入JAX-RS服务(使用Jackson作为JSON提供者)。服务声明如下:

@PUT
public Response setList(List<MyPojo> pojoList) {
    ...
}
@PUT
公共响应集合列表(列表pojoList){
...
}
调用该方法时,
pojoList
的成员的类型为
LinkedHashMap
,而不是
MyPojo
。因此Jackson将列表反序列化为一个通用的“映射列表”,而不是使用声明的类型


我知道Jackson在直接使用其
ObjectMapper
时能够反序列化键入的列表。但是,当通过JAX-RS使用它时,如何告诉Jackson这样做呢?是否有一个特殊的
@Json…
注释是我缺少的?

我刚刚发现这是使用CDI拦截器的一个副作用(至少在使用WELD作为CDI提供者时是如此)。CDI拦截器使用的代理类破坏方法参数的泛型信息

所以CDI代理导致

public Response setList(List<MyPojo> pojoList) {
    ...
}

Resteasy(=我们的JAX-RS提供商)。因此,它被杰克逊反序列化为“地图列表”。删除拦截器解决了这个问题,但不幸的是,这对我们来说不是一个可行的选择。

Show使用
MyPojo
的相关代码。您正在使用JAXB注释吗?
public Response setList(List pojoList) {
    ...
}