在Java中使用Web服务调用传递ArrayList

时间:2011-11-07 07:03:12

标签: java web-services soap arraylist

我有一个包含10个值的ArrayList。

ArrayList<String> a=new ArrayList<String>();
a.add("a1");
a.add("a2");
a.add("a3");

我正在调用WebService将此ArrayList作为输入参数传递。 但是,当我创建一个虚拟客户端并测试ArrayList时,我没有得到输出..我正在使用Apache Axis 2。 我意识到ArrayList没有同步,因此可能存在问题......我如何克服这个问题.... 我正在寻找最简单的解决方案...... 任何人都可以指导我......

服务器端代码为: -

public class TestWebSerrviceForArrayList
{

    public String personIdentity="RandomName";
    ArrayList<String> personArray=new ArrayList<String>();

    public ArrayList<String> addValuesArrayList()
    {
        personArray.add("Name1");
        personArray.add("Name2");
        personArray.add("Name3");
        personArray.add("Name4");
        System.out.println("Added values in person Array   "   +  personArray);
        return personArray;

    }

    public String getName()
    {
        return personIdentity;
    }

}

客户端的代码段是: -

TestWebSerrviceForArrayListStub testWeb=new TestWebSerrviceForArrayListStub();
AddValuesArrayListResponse r=testWeb.(I AM NOT ABLE TO FIND THE FUNCTION NAME)

1 个答案:

答案 0 :(得分:1)

Web服务不理解

ArrayList,但List是。{1}}。它与ArrayList的同步无关,而是与WSDL理解的数据类型相匹配。

如前所述:我会将此方法的返回类型更改为List<String>,如下所示(并重新生成WSDL)。

public List<String> addValuesArrayList()
    {
        personArray.add("Name1");
        personArray.add("Name2");
        personArray.add("Name3");
        personArray.add("Name4");
        System.out.println("Added values in person Array   "   +  personArray);
        return personArray;

    }