J'utilise la tâche Ant suivante pour générer le code côté client pour un point de terminaison de service Web:wsimport ne génère pas setters pour les collections
<wsimport wsdl="target/classes/META-INF/wsdl/MyService.wsdl"
sourcedestdir="target/wsimport"
verbose="true"
xnocompile="false"
xendorsed="true"
destdir="target/classes"
keep="true"
package="com.example.client.jaxws"
wsdlLocation="/META-INF/wsdl/MyService.wsdl" />
Cela génère des classes que les clients utilisent pour transmettre des données au service Web , par exemple
class Foo {
String name;
List<String> bars;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public List<String> getBars() {
return bars;
}
}
Notez que pour la propriété bars
la classe générée ne comprend pas un poseur, de sorte que le client devrait y accéder via:
someFoo.getBars().add("val");
Cependant, l'absence d'un setter signifie que cette classe a gagné » t travailler avec divers outils qui s'appuient sur la convention JavaBeans (par exemple Dozer), donc je voudrais forcer wsimport à générer les setters. J'ai trouvé un thread que vous pouvez forcer la génération indique setter en ajoutant ce qui suit à la tâche Ant
<xjcarg value="-Xcollection-setter-injector"/>
Cependant, ce fil est assez vieux, et ci-dessus ne semble pas fonctionner plus.
Je présume que vous signifie un plugin Ant? –
@Don - non, je veux dire un plugin jaxb – jtahlborn