getter pour les propriétés booléennes avec JAXB
Question
J'essaie d'exposer des services à l'aide de jax-ws mais la première surprise que j'ai eu est que Weblogic ne prend pas en charge les classes internes pour les objets requête / réponse. Après avoir surmonté cette situation, ici , je suis confronté à un autre défi:
Génère getXXX ()
plutôt que / en plus de la méthode isXXX ()
.
Je dois générer cette méthode parce que quand je lance le service, je reçois le message suivant:
<WS data binding error>could not find getter for property 'IsXXX' on com.foo.MyClass
Essayé une personnalisation:
<jaxb:globalBindings generateIsSetMethod="false" enableJavaNamingConventions="false">
sans effet. : (
Avez-vous de l'aide?
La solution
Le plugin BooleanGetter XJC pour JAXB est disponible à l'adresse http://fisheye5.cenqua.com/browse/~raw,r=1.1/jaxb2-commons/www/boolean-getter/index.html
Si vous travaillez avec JavaSE 6, vous devez le reconditionner - voir http://forums.java.net/jive/message.jspa?messageID=319434
Utilisez-les comme ci-dessous pour les construire:
<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask" classpathref="development.classpath"/>
<xjc schema="some.xsd" package="com.acme.jaxb" destdir="gen-src">
<arg value="-Xcollection-setter-injector"/>
<arg value="-Xboolean-getter"/>
</xjc>
HTH
Autres conseils
Ce problème a été corrigé ou mieux est supporté dans jaxb 2.1.13 (voir JAXB-131 pour plus de détails). Mettez à niveau vos dépendances et configurez l'option enableIntrospection xjc. Pour plus de détails sur les options xjc, consultez ce lien . Si vous utilisez org.codehause.mojo: jaxb2-maven-plugin: plug-in 1.3.1, consultez ce commentaire de problème pour une solution de contournement.
Option: -enableIntrospection
Voici un autre plugin qui résout le problème:
http://code.google.com/p/nebulent- xjc-booleangetter / wiki / AboutThisProject
Il génère le getXXX ()
en plus du isXXX ()
par défaut, ainsi, le code utilisant déjà ces classes ne rompt pas après l'application du plugin.