| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2010 15:24:43
|
FieroddPJ
JavaGuru
![[Avatar]](/images/avatar/2c5debfd72f43cccec9c23033dc054af.jpg)
Membro desde: 20/02/2005 00:00:00
Mensagens: 229
Offline
|
Boa tarde!!
Mais uma vez, venho postar uma dúcida sobre um problema com o qual me deparei.
Estou adicionando uma camada sobre a camada de negócio para publicá-la como web services, teóricamente o webservice simplesmente expõe um método de negocio já existente, o que acontece é o seguinte:
Nosso ambiente é java 1.4 + wsad 5 + axis 1.4
Dessa forma preciso que objetos do tipo collection sejam disponibilizados como arrays, para satisfazer o axis 1.4
Algumas classes (Beans, TOs, VOs e DTOs) possuem diversos atributos de tipos diversos e fazer um de-para manual das propriedades dessas classes para as classes geradas pelo axis é muito trabalhoso, então utilizamos beanutils para copiar as propriedades de uma classe para outra. O problema é que as collections precisam ser convertidas para arrays e o beanutils gera uma IllegalArgumentException se eu tentar copiar uma collection para um array diretamente.
Encontrei informações sobre os converters no qual eu posso estipular um determinado comportamento na conversão entre os tipos, porém ainda não obtive um sucesso completo.
Já passaram por algum problema desse tipo?
This message was edited 1 time. Last update was at 11/03/2010 09:28:09
|
LinkedIn |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2010 15:37:43
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 19489
Localização: Curitiba/PR
Offline
|
Por convesão diretamente você está falando do método toArray[]? Em todo caso, não é muito difícil criar um método similar:
This message was edited 1 time. Last update was at 10/03/2010 15:37:59
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2010 16:11:02
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3420
Offline
|
FieroddPJ wrote:Boa tarde!!
Mais uma vez, venho postar uma dúcida sobre um problema com o qual me deparei.
Estou adicionando uma camada sobre a camada de negócio para publicá-la como web services, teóricamente o webservice simplesmente expõe um método de negocio já existente,
sim, mas teoricamente também, vc precisa de uma camada de abstração entre a interface do webservice e os serviços reais. Não é 1-para-1.
Lembre-se que os webservices devem ser façades dos serviços do sistema e não copias. Ou seja, algumas coisas são simplificadas/ alteradas.
Vc sim tem que criar objetos novos para a sua interface de webservices. Nesses objetos vc define conjuntos como arrays.
Tão simples assim.
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2010 16:25:43
|
FieroddPJ
JavaGuru
![[Avatar]](/images/avatar/2c5debfd72f43cccec9c23033dc054af.jpg)
Membro desde: 20/02/2005 00:00:00
Mensagens: 229
Offline
|
sergiotaborda wrote:
Vc sim tem que criar objetos novos para a sua interface de webservices. Nesses objetos vc define conjuntos como arrays.
Tão simples assim.
Exatamente, estou trabalhando dessa forma.
Mas minha dúvida não está aí, ela está em como converter os objetos da camada de negócio para os objetos usados nos webservices de forma mais facil, por exemplo
Gostaria de usar o beanutils, ou qualquer outro mecanismo para copiar os dados da collection da primeira classe para o array da segunda, sem ter que fazer todos os outros gets e sets na mão, neste caso o beanutils lança uma IllegalArgumentExceptios pois estou tentando copiar um List para um array
Estava estudando aqui e pelo visto os converters do beanutils somente funcionam com strings, portanto não servem pro meu caso.
Eu poderia fazer com que as propriedades que fossem arrays não tivessem o mesmo nome das propriedades que são lists, dessa forma o beanutils copiaria as outras propriedades e eu copiaria as collections manualmente, mas ainda estou pesquisando caso possa realizar a copia completa através do beanutils
This message was edited 1 time. Last update was at 10/03/2010 16:52:02
|
LinkedIn |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/03/2010 09:31:46
|
FieroddPJ
JavaGuru
![[Avatar]](/images/avatar/2c5debfd72f43cccec9c23033dc054af.jpg)
Membro desde: 20/02/2005 00:00:00
Mensagens: 229
Offline
|
Editei o titulo do tópico, acho que compliquei demais minha pergunta.
Será que é possivel realizar essa transformação com o beanutils ou outro utilitário qualquer?
|
LinkedIn |
|
|
 |
|
|