2010-12-09 38 views
1

J'ai un problème avec le service Web qui a un tableau ou un paramètre List. Voici par exemple:Comment créer un service Web Java (jax-ws) avec array ou List en tant que paramètre?

@WebMethod 
public String printList(@WebParam(name = "list") List<String> list) { 
    String result = ""; 
    if(list == null) { 
     result = "list is null"; 
    } else if(list.size() == 0) { 
     result = "list is empty"; 
    } else { 
     for(String elem : list) { 
      result += elem + " "; 
     } 
    } 
    return result; 
} 

Quand j'appelle PrintList du client de service Web le résultat est toujours « la liste est vide » La même chose est quand j'utiliser le tableau de chaîne. Dois-je utiliser des annotations supplémentaires ou quelque chose?

Merci à l'avance

Répondre

1

Votre code est parfait, il semble que vous appelez ce mal,

et vous pouvez supprimer deuxième condition directement seconde autre travaillera

+0

Merci pour votre réponse. Si j'appelle une autre méthode du même service web qui par exemple prend un paramètre String tout fonctionne parfaitement - l'argument passé String (ou long, int ou autre) n'est ni nul ni vide. Donc je pense que je l'appelle correctement. Y at-il une possibilité que je fasse quelque chose de mal dans la génération de service Web? – Pawel

+0

@Pawel essayez d'utiliser SOAP ui une fois. Il semble parfait à partir de la fin du serveur –

+0

life.java Cela fonctionne avec soapui - vous avez raison, il doit s'agir de quelque chose du côté client. Merci! – Pawel

0

Le type de données tableau dans un Webservice JAX n'est pas favorable, donc vous devez utiliser des bibliothèques et des outils pour une telle chose ...