Utilizar BeanUtils para converter Lists em arrays, é possivel?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
FieroddPJ
JavaGuru
[Avatar]

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
[MSN]
ViniGodoy
Moderador
[Avatar]

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
[WWW]
sergiotaborda
GUJ Expert
[Avatar]

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
[WWW]
FieroddPJ
JavaGuru
[Avatar]

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
[MSN]
FieroddPJ
JavaGuru
[Avatar]

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
[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team