JAX-RS 在自定义对象中使用自定义对象列表

JAX-RS consuming a custom object list inside a custom object

在 JAX-RS CXF 实现中使用另一个自定义对象中的自定义对象列表的方法是什么?例如,我的对象如下所示

@POST
@Produces({MediaType.APPLICATION_JSON})
@Path("test")
public Response myMethod(MyCustomObject myCustomObject) {

在 MyCustomObject 内部,它有一个另一个自定义对象的列表,它作为内部 class

  public class MyCustomObject {

        private List<MyInner> innerObjects;

        public class MyInner {
            private String property;
            ....
        }
        ....
}

请求 JSON 对象作为请求的 POST 主体传递。当我调试它时,我可以在将 innerObjects 列表作为 null 发送时正确传递 MyCustomObject。但是当我有一个带有自定义对象的基于数组的结构时,它似乎没有正确选择它。此外,当我有原始类型或基于字符串的数组时,服务工作正常,而不是这个自定义对象数组。如何处理上述情况。

可能是因为内class.

Similar question here

不确定你使用的是什么映射器(cxf 默认是 jettison 但它都是可配置的),但情况可能相似。

Great explanation here

non-static inner classes (including anonymous ones) have set of hidden variables added by compiler, passed via (hidden) constructor. And as a consequence, do not have zero-argument ("default") constructor