WSDL2Java的。 Apache CXF。 ArrayOf {Type}到List <type> </type>

时间:2012-07-02 10:42:29

标签: apache wsdl jaxb cxf

如何生成List<Type>而不是ArrayOf {Type}? 例如,方法返回

[WebMethod]
public List<long> GetSimple()

WSDL2Java将生成:

public ru.test.ws.ArrayOfLong GetSimple();

ArrayOfLong:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfLong", propOrder = {
    "_long"
})
public class ArrayOfLong
    implements Serializable
{
    @XmlElement(name = "long", type = Long.class)
    protected List<Long> _long;

    public List<Long> getLong() {
        if (_long == null) {
            _long = new ArrayList<Long>();
        }
        return this._long;
    }
}

如何配置CXF和JAXB以使用List<Long>代替ArrayOfLong?

1 个答案:

答案 0 :(得分:2)

2件事:

1)确保<jxb:globalBindings collectionType="indexed"/> 不存在。它会将所有集合转换为数组。

2)尝试强制使用@WebResult注释

的类型

希望这有帮助。