Retornar String[] mais de uma vez

9 respostas
T

Imagem a seguinte interface:

public interface superIntegration { public String[] getBusinessPartnersStringArray(int bpartnerId); }

Este método retorna um Array de Strings, até ai tudo bem. Ocorre que eu preciso retornar vários String[].

A opção de retornar um Array de Arrays não é viavel pois isto será um Web Service e a ferramenta que eu utilizo não sabe traduzir Arrays de Complex Type do SOAP.

O que eu quero é fazer o equivalente a um out.print("string"), porém ao invés de imprimir um simples String quero que envie o meu array de Strings atual. É possivel?

9 Respostas

T

Você pode usar uma senhora gambiarra, que é a seguinte: concatene as strings (com “|” ou algum caracter que você sabe que não é usado). O client deve separar as strings (usando String.split).

Exemplo:

String [] partners = ....getBusinessPartnersStringArray ();

(digamos que o valor retornado na posição 0 do array seja "Sun|Microsoft|IBM|Coca-Cola")

String[] subPartners = partners[0].split ("\|");
Luiz-SP
thingol:
Você pode usar uma senhora gambiarra, que é a seguinte: concatene as strings (com "|" ou algum caracter que você sabe que não é usado). O client deve separar as strings (usando String.split). Exemplo:
String [] partners = ....getBusinessPartnersStringArray ();

(digamos que o valor retornado na posição 0 do array seja "Sun|Microsoft|IBM|Coca-Cola")

String[] subPartners = partners[0].split ("\|");

O Thingol, num dá pro cara usar uma list?

T

Eu não recomendaria usar List em Web Services. Sempre que vi alguém tentando usar List dava algum problema.
Em Web Services eu recomendo usar apenas os seguintes tipos de dados para melhorar a interoperabilidade:

  • Tipos Primitivos
  • java.lang.String
  • java.util.Date
  • Arrays
  • Classes contendo os tipos primitivos, String, Date, e Arrays
  • Arrays dessas classes
fabim

pudesse retornar String[]… seria bom hein? =D

T

Você pode retornar uma String[] em um web service sem problema algum.

fabim

E um var-args de String[]?

dsadsudsdhudh vc achou que eram reticências né tipo “ai, se desse pra retornar um array de string… que bom seria…”

=D

dudaskank
thingol:
Eu não recomendaria usar List em Web Services. Sempre que vi alguém tentando usar List dava algum problema. Em Web Services eu recomendo usar apenas os seguintes tipos de dados para melhorar a interoperabilidade:

- Tipos Primitivos
- java.lang.String
- java.util.Date
- Arrays
- Classes contendo os tipos primitivos, String, Date, e Arrays
- Arrays dessas classes

Crie uma classe contendo um array de strings, e aí retorne o array dessa classe, que tal?

class BusinessPartners {
   String partners[];
   // get, set, etc
}

// e  na sua interface:
public BusinessPartners [] getBusinessPartnersArray(int bpartnerId);

flw

T

Veja se a ferramenta suporta isso. Pelo que foi dito, a tal ferramenta não suporta Arrays de Complex-type.

T

É verdade, a ferramenta - www.talend.com - não suporta Array de Complex Type ainda. Diz que suporta List e Array dos tipos primitivos.

Retornar um String[] funciona para apenas 1/200 da minha necessidade… Preciso de um String[][] mesmo, foi o que eu fiz no Web Service e funcionou beleza no soapUI, mas no Talend ainda não consegui ler corretamente o Array de Arrays.

Esta gambiarra é inteligente. No caso eu teria que implementar a separação da String dentro do próprio Talend. Mas pesquisando eu encontrei que a parte de Web Services desta ferramenta só consegue tratar o Response do serviço, portanto não sei se fazer um out.println (mesmo com a gambiarra embutida) funcionará, vou testar.

Criado 28 de janeiro de 2008
Ultima resposta 28 de jan. de 2008
Respostas 9
Participantes 5