web-services - axis2 网络服务中的返回列表

标签 web-services soap axis2

您好,我想从 Web 服务返回一个列表。我的代码是

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

        }
}

但是在wsdl的创建中我发现了

<xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"/>

当从客户端调用这个 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

现在我在做什么。请帮忙。

最佳答案

从 Axis2 POJO Web 服务对象返回数据时不应使用 Java 集合类型,而应返回对象数组或原始类型。 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()] );
    }
}

关于web-services - axis2 网络服务中的返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743349/

相关文章:

php - SOAP 消息的最大大小是如何确定的?

java - 无法发送 ViaPost 到 url 读取超时

c++ - 使用什么 Web 服务/接口(interface)?

java - 如何防止 Postman 调用 Rest WebService?

android - Android中基于webservice发布请求

web-services - Grails CXF插件Web服务

soap - 您无权使用 SOAP for DoDirectPaymentReq 进行此 API 调用

c++ - 在 C/C++ 上传输数据的最佳(最简单)方法是什么

java - 在 axis2-wsdl2code-maven-plugin 中设置 -Eosv 属性

java - 从 WSDL 生成代码导致异常