У меня проблема с возвратом 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";
}
, тогда это отлично работает - » привет "
получено на клиенте.