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

时间:2015-03-27 18:51:58

标签: rest java-ee cxf jax-rs

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

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

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

驻留在其中
  public class MyCustomObject {

        private List<MyInner> innerObjects;

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

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

1 个答案:

答案 0 :(得分:1)

这可能是因为内部阶级。

Similar question here

不确定您使用的是哪个映射器(cxf默认为jettison但它都是可配置的),但情况可能类似。

Great explanation here

  

非静态内部类(包括匿名内部类)具有由编译器添加的隐藏变量集,通过(隐藏)构造函数传递。因此,不要使用零参数(“默认”)构造函数