在axis2 Web服务中返回列表

Bis*_*jit 2 soap axis2 web-services

嗨,我想从Web服务返回一个列表.我的代码是

public class WebListTest {
    public List serviceFunction(String arg1,String arg2)
    {
    List list=new ArrayList();
        list.add(arg1);
        list.add(arg2);
            return list;    

        }
}
Run Code Online (Sandbox Code Playgroud)

但在wsdl创作中我发现了

<xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"/>
Run Code Online (Sandbox Code Playgroud)

当从客户端调用此Web服务时,我得到了异常

org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Any type element type has not been given
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    at webservice1.WebListTestStub.fromOM(WebListTestStub.java:1622)
    at webservice1.WebListTestStub.serviceFunction(WebListTestStub.java:191)
    at webservice1.ServiceTest.main(ServiceTest.java:24)
Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException: Any type element type has not been given
    at webservice1.WebListTestStub$ServiceFunctionResponse$Factory.parse(WebListTestStub.java:917)
    at webservice1.WebListTestStub.fromOM(WebListTestStub.java:1616)
    ... 2 more
Caused by: org.apache.axis2.databinding.ADBException: Any type element type has not been given
    at org.apache.axis2.databinding.utils.ConverterUtil.getAnyTypeObject(ConverterUtil.java:1612)
    at webservice1.WebListTestStub$ServiceFunctionResponse$Factory.parse(WebListTestStub.java:895)
    ... 3 more
Run Code Online (Sandbox Code Playgroud)

现在我做什么.请帮助.

Wre*_*nch 6

从Axis2 POJO Web服务对象返回数据时,不应使用Java Collection类型,而应返回对象数组或基本类型.WSDL不允许Java Collection数据结构.请记住,Web服务需要可以从任何语言访问,并且它们不会像Java那样使用相同的集合框架.

所以,做这样的事情:

public class WebListTest {
    public String[] serviceFunction(String arg1,String arg2) {

    List<String> stringList=new ArrayList<String>();

    stringList.add(arg1);
    stringList.add(arg2);

    return stringList.toArray( new String[stringList.size()] );
    }
}
Run Code Online (Sandbox Code Playgroud)