Retornar mais de um Objeto - WebService [Resolvido]

Boa Tarde!

Criei um WebService e o seu retorno no browser está assim:

<return type="Pessoa"> <nome>Maria</nome> <idade>20</idade> </return> <return type="Pessoa"> <nome>João</nome> <idade>25</idade> </return>

Ou seja, me retorna dois objetos.

O problema é que no cliente consigo receber somente o primeiro, o segundo eu não consigo, há uma maneira de acessar o segundo ?

Obrigado

cara vc tem que envolver esses objetos num list of elements da uma olhada nas annotations do jaxb

esse eh um otimo tutorial

http://www.vogella.de/articles/JavaXML/article.html

valeu

Retornei em um Vector e o retorno fica assim:

<item0 xmlns="" type="Pessoa"> <nome>Maria</nome> <idade>20</idade> </item0> <item0 xmlns="" type="Pessoa"> <nome>João</nome> <idade>25</idade> </item0>

Neste caso continua retornando somente o primeiro objeto (Maria), qual estrutura posso utilizar para que ele me retorne todos os objetos?

A classe do WebService é essa:

[code]public Vector getPessoa(){
Vector v = new Vector();

Pessoa[] p = new Pessoa[2];

p[0].setNome(“Maria”);
p[0].setIdade(“20”);
p[1].setNome(“João”);
p[1].setIdade(“25”);

v.addElement§;
return v;
}[/code]

Tentei retornar em um List e também em um ArrayList e o retorno é o mesmo, só consigo pegar no cliente o primeiro elemento. Como faço pra pegar todos os elementos no primeiro return?

Utilize arrays simples ao invés de collections.

http://www.ibm.com/developerworks/webservices/library/ws-tip-coding.html

Fiz o teste utilizando arrays simples, essa é o método:

[code]public Pessoa[] getPessoa(){

Pessoa[] p = new Pessoa[2];

p[0].setNome(“Maria”);
p[0].setIdade(“20”);
p[1].setNome(“João”);
p[1].setIdade(“25”);

return v;
} [/code]

No browser o retorno é esse:

<return type="webservice.Pessoa"> <nome>Maria</nome> <idade>20</idade> </return> <return type="webservice.Pessoa"> <nome>João</nome> <idade>25</idade> </return>

Na aplicação cliente continua do mesmo jeito, somente retorna o primeiro

Consegui resolver, fiz da seguinte maneira no client (J2ME):

[code]
//recebe os dados
SoapObject body = (SoapObject)envelope.bodyIn;

//pega o primeiro objeto
SoapObject result = (SoapObject)body.getProperty(0);

//pega o segundo objeto
SoapObject result1 = (SoapObject)body.getProperty(1);

//imprime o nome do primeiro retorno
System.out.println(result.getProperty(“nome”));

//imprime o nome do segundo retorno
System.out.println(result1.getProperty(“nome”));[/code]

A partir daí é só transformar os result’s em objetos pegando o campo através do getProperty.

Agradeço a ajuda e fica então o tópico com a resolução para quem passar pelo mesmo problema.

Valeu