将 JSON 字符串数组传递给 CXF Rest 方法

Passing JSON String array to CXF Rest Method

我需要将字符串列表/字符串数组传递给使用 Apache CXF 实现的 restful 服务方法。我可以通过将 ArrayList 包装在装饰有 JAXB 注释的 pojo class 中来实现这一点。

我应该为一个实例变量创建一个绑定 class 吗?我的方法只需要一个参数(即字符串数组)。我不能将 JSON 数组直接绑定到数组或数组列表,而不是绑定到另一个 class 吗?

请求JSON:

    {"ids":[178,304,272]}

POJOclass

@XmlRootElement(name = "CommonRequest")
public class WSRestCommonRequest {

private List<String> ids;
    //getter setter methods
}

工作方法

@POST
@Path("cancelThese")
public void cancelThese(CommonRequest request) throws WebServiceFault {
    //---- implementation
}

我在找什么

public void cancelThese(List<String> ids) throws WebServiceFault {
        //---- implementation
}

抛出以下错误

Headers: {exception=[Can not deserialize instance of java.util.ArrayList out of START_OBJECT token

直接传递JSON数组就可以完美使用你的方法[178,304,272]

@POST
@Path("cancelThese")
@Consumes(MediaType.APPLICATION_JSON)
public void cancelThese(List<String> ids) throws WebServiceFault {
        //---- implementation
}

使用 CXF 3.1.6 和 Jackson 2.4.2 测试