JavaWeb服务-列表与数组

JavaWeb服务-列表与数组,java,web-services,jax-rpc,Java,Web Services,Jax Rpc,我不熟悉web服务。我正在编写一些用于测试的简单web服务,我有以下问题 该网站称JAX-RPC支持原语类型的数组。但是当我编写一个简单的web服务时 @WebService @SOAPBinding(style=Style.RPC) public interface AddNums { @WebMethod public int addNumbers(int[] nums); } 并从wsdl生成客户机代码,我得到以下WS-client接口 @WebMethod @WebR

我不熟悉web服务。我正在编写一些用于测试的简单web服务,我有以下问题

该网站称JAX-RPC支持原语类型的数组。但是当我编写一个简单的web服务时

@WebService
@SOAPBinding(style=Style.RPC)
public interface AddNums {
    @WebMethod
    public int addNumbers(int[] nums);

}
并从wsdl生成客户机代码,我得到以下WS-client接口

@WebMethod
@WebResult(partName = "return")
public int addNumbers(
    @WebParam(name = "arg0", partName = "arg0")
    IntArray arg0); 
它生成具有成员受保护列表的IntArray类

public class IntArray {

    @XmlElement(nillable = true)
    protected List<Integer> item;
阵列中的公共类{
@XmlElement(nillable=true)
受保护的清单项目;
这就是数组的支持方式吗?因此,传递数组的唯一方法是创建IntArray的实例,并将整数的列表设置为它

当我将Web服务设置为文档样式时也是如此

来自WSDL的WS-client接口具有以下方法:

public int addNumbers(
    @WebParam(name = "arg0", targetNamespace = "")
    List<Integer> arg0);
public int addnumber(
@WebParam(name=“arg0”,targetNamespace=”“)
列表arg0);
原始服务中的int[]数组变为List


这是否意味着web服务中的数组类型总是转换为wsdl生成的客户端代码中的列表?

JAX-WS使用JAXB进行绑定。
的默认映射是
列表
。但是您可以使用
@XmlJavaTypeAdapter
注释来提供XML内容的映射

您可以在中看到有关JAXB的更多信息


另一方面,您可以尝试返回一个数组。请查看问题的答案。但是,您可能应该考虑:看这个问题:。

非常感谢您的回答。您可以回答我的另一个与JAX-RPC相关的问题吗。文档中说JAX-RPC支持数组,不支持集合。但是在JAX-RPC的情况下,它不支持集合int数组成为带有成员变量列表的类“IntArray”。