Utilizar BeanUtils para converter Lists em arrays, é possivel?

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?

Por convesão diretamente você está falando do método toArray[]?

Em todo caso, não é muito difícil criar um método similar:

public Object[] toArray(Collection c) { Object array = new Object[c.size()]; Iterator it = c.iterator(); int i = 0; while (it.hasNext()) { array[i++] = it.next(); } return array; }

[quote=FieroddPJ]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,
[/quote]

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.

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

//Classe de negocio
public class Informacao{
 private List dados;
 ...
}
//Classe do webservice
public class Informacao{
 private Dado[] dados;
 ...
}

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

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?