Возвращение ArrayList из WebService в Java

У меня проблема с возвратом ArrayList из моего веб-сервиса (Java).

Я написал тестовый веб-сервис и клиент, который его использует . Кажется, все работает нормально - то есть клиент вызывает сервер, а сервер получает запрос операции.

Однако я написал простой метод, который должен возвращать список 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.

Если я исследую WSDL по своему URL-адресу ( http://127.0.0.1:9876/myservice-sql?wsdl ) для executeSelectSQL, он будет выглядеть так:


    

Я упускаю что-то очевидное?

Изменить:

Однако, если у меня есть веб-метод, который определяется в интерфейсе как:

@WebMethod
String getAString();

и реализация сервера:

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

, тогда это отлично работает - » привет " получено на клиенте.

10
задан Honza Zidek 9 September 2016 в 10:32
поделиться