从Java中的WebService返回ArrayList

前端之家收集整理的这篇文章主要介绍了从Java中的WebService返回ArrayList前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从Web服务( Java)返回ArrayList时遇到问题.

我已经写了一个测试Web服务和客户端,它消耗它.所有这些都可以正常工作 – 即客户端正在调用服务器并且服务器接收到操作请求.

但是,我写了一个简单的方法,我希望它返回一个ArrayList.

我的界面定义如下:

@WebService
@SOAPBinding(style = Style.RPC)
public interface IsqlServerConnectionWS {

    @WebMethod
    ArrayList getSimpleArrayList();
}

我有我的服务器端实现返回ArrayList:

@WebService(endpointInterface="WebServices.IsqlServerConnectionWS")
public class sqlConnectionWSServer
    implements IsqlServerConnectionWS {

    @Override
    public ArrayList getSimpleArrayList() {
        ArrayList al = new ArrayList();
        al.add( "This" );
        al.add( "is" );
        al.add( "a" );
        al.add( "test" );
        return al;
    }
}

最后我的客户来电话:

ArrayList results = server.getSimpleArrayList();

服务器填充数组列表.但是,在客户端,ArrayList为空.它的大小为0.

如果我在我的URL(http://127.0.0.1:9876/myservice-sql?wsdl)检查了executeSelectsql的WSDL,它看起来像:

<message name="executeSelectsqlResponse">
    <part name="return" type="tns:arrayList"/>
</message>

我错过了什么吗?

编辑:

但是,如果我在界面中定义了一个Web方法

@WebMethod
String getAString();

和服务器实现:

@Override
public String getAString() {
    return "hello there";
}

那么这样做很好 – 在客户端收到“你好”.

解决方法

使用数组而不是ArrayList,因为JAXB无法将集合作为顶级对象处理,仅作为bean的属性.或者,创建一个bean并将ArrayList放在其中.

查看错误JAXB-223: JAXB doesn’t support collection classes as top level objects

原文链接:https://www.f2er.com/java/124420.html

猜你在找的Java相关文章