WebService retornando Collection

Olá pessoal,
estou começando a desenvolver um WebService e tenho a seguinte situação:
preciso disponibilizar um método que busque no banco de dados uma dada sql e retorne essa lista de objetos vindas do banco.

Estou tendo dificuldades de retornar tipos complexos, o wsdl nao mapeia essa lista mesmo usando generics, por exemplo:

@WebService()
public class BuscaPessoasWS {
List output;
@WebMethod(operationName = “getListaPessoas”)
@SuppressWarnings(“unchecked”)
public List getListaPessoas() throws RemoteException{
try{
listaPessoas = null;
BusinessDelegateImpl businessDelegate = new BusinessDelegateImpl();
GenericReportFacade genericFacade = businessDelegate.getGenericReportFacade();
String sql = new String();
sql = “SELECT * FROM Pessoas”;
listaPessoas = genericFacade.makeQuery(sql);
}catch(Exception ex){
System.out.println("Exceção: "+ex);
}
return listaPessoas;
}
Esse wsdl do amazon tem Collections mapeados no wsdl, como vcs podem ver em:
http://soap.amazon.com/schemas2/AmazonWebServices.wsdl
Alguém sabe como fazer isso?

Desde já agradeço!

Cara, eu tbm estou com esse mesmo problema, entao passei a retornar Pessoa[] e ai ele mapeou normalmente…

Vc de deve usar arrays já que as classes de coleção não são inter-plataforma. Lembre-se que webservices podem ser acessados por linguagens e plataformas que vc nem imagina que existem então tem que usar o denominador comum. coleções como arrays, numeros como int, palavras como String

Mais uma pergunta de iniciante,
nesse caso em que o WebMethod retorna uma Pessoa[], quem for criar o client não vai ter que criar uma classe Pessoa do outro lado?
Não seria mais correto retornar uma matriz de Strings por exemplo? Para que fique mais independente a aplicação cliente do webservice?

Outra pergunta,
tem alguma maneira de invocar o método WebService via browser, utilizando Jboss 4.2, passando os parâmetros por get, assim não precisaria criar um cliente para testar a aplicação.

No glassfish tem como testar o WS através do browser colocando ?Tester.
Tem algo parecido no Jboss?

Desde já muito obrigado.

[quote=rro]Mais uma pergunta de iniciante,
nesse caso em que o WebMethod retorna uma Pessoa[], quem for criar o client não vai ter que criar uma classe Pessoa do outro lado?
Não seria mais correto retornar uma matriz de Strings por exemplo? Para que fique mais independente a aplicação cliente do webservice?
[/quote]

Se a classe pessoa já faz parte do contrato do WS nada mais natural que retornar um array de Pessoa.
Retornar uma matriz de string é péssima ideia.

Veja, a limitação em usar collection é que ela faz parte do dominio do java. PHP , .NET etc… não terão essa classe.
Então, usar array, neste caso é para isolar as tecnologias ( que aliás é um dos objetivos do WS para começo de conversa).

A classe Pessoa é uma classe do dominio do problema em que o WS se insere. Ela não é de uma tecnologia. Ela é do dominio.
E por isso ela deve ser usada ao invez de um matriz de string. É uma questão semântica.

Quanto a isso não lhe sei dizer.