Passar Array como parametro no Web Service

606 views
Skip to first unread message

22-gers

unread,
Jul 15, 2010, 6:18:07 PM7/15/10
to javasf: JavaServer Faces Group
Galera, estou com o seguinte problema sem solução. Tenho um webService
em Jax-ws, e consigo consumir seus métodos que me retornam vetores,
Strings e afins. Até aí tudo bem.

O Problema é quando eu passo como parametro um array. Tenho uma classe
de ItemVenda, e quando passo esse array de parametro, recebo no
webService um array com 1 posição, e com todos atributos vazios ou
nulos, não importa o tamanho do array que estou passando.

Pesquisei na net, e não achei nenhum caso parecido, pelo menos até
agora. Já verifiquei os métodos, configurações e estou meio sem norte.

Alguém poderia me ajudar? Algum idéia do que poderia ser?

Obrigado.

Lázaro

Sérgio Fantin

unread,
Jul 16, 2010, 8:43:24 AM7/16/10
to jav...@googlegroups.com
Opa...

seguinte... se você usa uma coleção genérica o que ocorre é o seguinte...  é que os tipos genéricos do Java são baseados em "apagamento”, ou seja, é uma informação que só existe no código-fonte, mas não é preservada no código compilado (byte-code). Com isso, não conseguiríamos mapear métodos que usam coleções Java para schemas XML.
Para "contornar" este detalhe você pode criar uma classe que transforma as listas recuperadas em camadas inferiores em arrays.

Abraços...


2010/7/15 22-gers <lsp_...@hotmail.com>

--
Você recebeu essa mensagem por que é membro do "JavaSF: JavaServer Faces Group" em http://groups.google.com/group/javasf
Para postar no grupo envie para jav...@googlegroups.com



--
Sérgio Fantin
http://serjaum.wordpress.com

Matt

unread,
Jul 16, 2010, 11:57:30 AM7/16/10
to jav...@googlegroups.com
Use Complex Type
http://www.javaranch.com/journal/200603/WSComplexTypes.html
enjoy it!

2010/7/16 Sérgio Fantin <sergio.l...@gmail.com>

22-gers

unread,
Jul 19, 2010, 1:05:27 PM7/19/10
to javasf: JavaServer Faces Group
Obrigado pelas sugestões galera, mas é o seguinte. Fiz o que o Sérgio
me Falou, criei uma classe que extende ArrayList e passei a usar ela
no meu método. Realmente fez alguma diferença, agora eu recebo o array
com o número certo de itens, só que o objeto que chega pra mim não é
entendido pelo Java. Mais alguma sugestão? Vocês tem algum exemplo de
como implementar essa classe para encapsular o meu array?

Mais uma vez obrigado pela ajuda e até mais.

On 16 jul, 12:57, Matt <get...@gmail.com> wrote:
> Use Complex Typehttp://www.javaranch.com/journal/200603/WSComplexTypes.html
> enjoy it!
>
> 2010/7/16 Sérgio Fantin <sergio.lnd.fan...@gmail.com>
>
> > Opa...
>
> > seguinte... se você usa uma coleção genérica o que ocorre é o seguinte...
> > é que os tipos genéricos do Java são baseados em "apagamento”, ou seja, é
> > uma informação que só existe no código-fonte, mas não é preservada no código
> > compilado (byte-code). Com isso, não conseguiríamos mapear métodos que usam
> > coleções Java para schemas XML.
> > Para "contornar" este detalhe você pode criar uma classe que transforma as
> > listas recuperadas em camadas inferiores em arrays.
>
> > Abraços...
>
> > 2010/7/15 22-gers <lsp_pr...@hotmail.com>
>
> >  Galera, estou com o seguinte problema sem solução. Tenho um webService
> >> em Jax-ws, e consigo consumir seus métodos que me retornam vetores,
> >> Strings e afins. Até aí tudo bem.
>
> >> O Problema é quando eu passo como parametro um array. Tenho uma classe
> >> de ItemVenda, e quando passo esse array de parametro, recebo no
> >> webService um array com 1 posição, e com todos atributos vazios ou
> >> nulos, não importa o tamanho do array que estou passando.
>
> >> Pesquisei na net, e não achei nenhum caso parecido, pelo menos até
> >> agora. Já verifiquei os métodos, configurações e estou meio sem norte.
>
> >> Alguém poderia me ajudar? Algum idéia do que poderia ser?
>
> >> Obrigado.
>
> >> Lázaro
>
> >> --
> >> Você recebeu essa mensagem por que é membro do "JavaSF: JavaServer Faces
> >> Group" emhttp://groups.google.com/group/javasf
> >> Para postar no grupo envie para jav...@googlegroups.com
>
> > --
> > Sérgio Fantin
> >http://serjaum.wordpress.com
>
> >  --
> > Você recebeu essa mensagem por que é membro do "JavaSF: JavaServer Faces
> > Group" emhttp://groups.google.com/group/javasf

Luiz Eduardo Kowalski

unread,
Jul 20, 2010, 8:19:53 AM7/20/10
to jav...@googlegroups.com
seria mais facil migrar isso pra rest. rest passa qualquer coisa, alem de ser MUITO mais facil desenvolver um ws
se quiser, acho que tenho um exemplo pronto que fiz na faculdade. passei com 100 :D

Alan_

unread,
Jul 20, 2010, 9:54:16 AM7/20/10
to javasf: JavaServer Faces Group
Luiz Eduardo...
Tem como passar o exemplo que vc utilizou com REST?
Estou querendo fazer isso mesmo que voce fez.

Agradeço a atenção

Luiz Eduardo Kowalski

unread,
Jul 20, 2010, 10:18:37 AM7/20/10
to jav...@googlegroups.com
enviei nesse email que vc se cadastrou no grupo

22-gers

unread,
Jul 20, 2010, 4:18:03 PM7/20/10
to javasf: JavaServer Faces Group
Opa Luiz, quero sim cara. me manda no email do gmail ->
lsp....@gmail.com

Obrigado kra, abraços

Luiz Eduardo Kowalski

unread,
Jul 21, 2010, 7:04:10 AM7/21/10
to jav...@googlegroups.com
feito :D

22-gers

unread,
Aug 30, 2010, 3:42:56 PM8/30/10
to javasf: JavaServer Faces Group
Galera, depois de pesquisar bastante e tentar várias soluções, resolvi
da maneira mais sensata. Como a idéia básica de WebServices é a
comunicação entre linguagens, achei que seria melhor a minha lista
dentro do objeto ser um xml com a lista de itens.

Transformo a lista em xml com o framework XStream, e passo
normalmente, setando esse xml em um atributo String da minha venda.
Quando recebo a venda no meu server de operações, converto novamente
para objeto Java. Funcionou normalmente, tanto para Java, quando para
Delphi. Agora sim funciona perfeitamente.

Abraços e agradeço a todos pelas sugestões.

On 21 jul, 08:04, Luiz Eduardo Kowalski <luiz.zo...@gmail.com> wrote:
> feito :D
Reply all
Reply to author
Forward
0 new messages