getter per proprietà booleane con JAXB
Domanda
Sto cercando di esporre i servizi usando jax-ws ma la prima sorpresa che ho avuto è stata che Weblogic non supporta le classi interne per oggetti richiesta / risposta. Dopo aver superato questa situazione qui , sto affrontando un'altra sfida:
Genera getXXX ()
anziché / in aggiunta al metodo isXXX ()
.
Devo generare questo metodo perché all'avvio del servizio ricevo il messaggio:
<WS data binding error>could not find getter for property 'IsXXX' on com.foo.MyClass
Ho provato una personalizzazione:
<jaxb:globalBindings generateIsSetMethod="false" enableJavaNamingConventions="false">
senza effetto. : (
Qualche aiuto?
Soluzione
Il plug-in BooleanGetter XJC per JAXB è disponibile all'indirizzo http://fisheye5.cenqua.com/browse/~raw,r=1.1/jaxb2-commons/www/boolean-getter/index.html
Se si lavora con JavaSE 6, è necessario reimballarlo: consultare http://forums.java.net/jive/message.jspa?messageID=319434
Usa in build ant come in basso:
<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
Altri suggerimenti
Questo è stato risolto o meglio dire supportato in jaxb 2.1.13 (vedi JAXB-131 per maggiori dettagli). Aggiorna le tue dipendenze e configura l'opzione enableIntrospection xjc. Maggiori dettagli sulle opzioni di xjc sono disponibili su questo link . Se stai usando org.codehause.mojo: jaxb2-maven-plugin: 1.3.1 plugin vedi commento di questo problema per una soluzione alternativa.
Opzione: -enableIntrospection
Ecco un altro plugin che risolve il problema:
http://code.google.com/p/nebulent- xjc-booleangetter / wiki / AboutThisProject
Genera il getXXX ()
in aggiunta al isXXX ()
predefinito, quindi il codice che già usa queste classi non si rompe dopo aver applicato il plugin.