Ma tâche consiste à écrire un service Web pour une opération de mise à jour où une liste d'objets est transmise à la méthode.JAXB Liaison pour paramètre de demande SOAP dans JAXWS
@WebMethod(operationName = "updateObjects", action = "urn:preferences")
public boolean updateObjects(List<MyObject> objects){
}
La classe MyObject est assez simple.
@XmlRootElement(name="Object")
public class MyObject{
private String item1;
private String item2;
}
Maintenant l'énoncé du problème. Quand je regarde la requête SOAP pour cette méthode (que l'interface utilisateur SOAP généré pour moi), la demande ressemble ci-dessous:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pref="preferences">
<soapenv:Header/>
<soapenv:Body>
<pref:updateObjects>
<!--Zero or more repetitions:-->
<arg0>
<!--Optional:-->
<item1>?</item1>
<!--Optional:-->
<item2>?</item2>
</arg0>
</pref:updateObjects>
</soapenv:Body>
</soapenv:Envelope>
mais je veux qu'il ressemble comme ci-dessous.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pref="preferences">
<soapenv:Header/>
<soapenv:Body>
<pref:updateObjects>
<!--Zero or more repetitions:-->
<Objects>
<Object>
<!--Optional:-->
<item1>?</item1>
<!--Optional:-->
<item2>?</item2>
</Object>
<Object>
<!--Optional:-->
<item1>?</item1>
<!--Optional:-->
<item2>?</item2>
</Object>
</Objects>
</pref:updateObjects>
</soapenv:Body>
</soapenv:Envelope>
Quelqu'un peut-il vous conseiller. Merci d'avance.
Merci beaucoup pour la réponse rapide ggarcio .. Est-ce pas là une manière que nous pouvons le faire sans créer de la classe d'emballage (par une annotation qui fait cette enveloppe pour nous)? J'ai 8 telles méthodes pour différentes liste d'objets :( – Vinay
Vérifiez la réponse mise à jour :-) – ggarciao
Cela a fonctionné monsieur ... m'a sauvé un certain temps .. Acceptez votre réponse .. Cheers ... – Vinay