getter para propiedades booleanas con JAXB
Pregunta
Estoy tratando de exponer servicios usando jax-ws, pero la primera sorpresa que obtuve fue que Weblogic no admite clases internas para objetos de solicitud / respuesta. Después de superar esta situación, aquí , i & # 180; m enfrenta otro desafío:
Genere getXXX ()
en lugar de / adicionalmente al isXXX ()
.
Necesito generar este método porque cuando inicio el servicio recibo el mensaje:
<WS data binding error>could not find getter for property 'IsXXX' on com.foo.MyClass
Intenté una personalización:
<jaxb:globalBindings generateIsSetMethod="false" enableJavaNamingConventions="false">
sin efecto. :(
¿Alguna ayuda?
Solución
El complemento BooleanGetter XJC para JAXB está disponible en http://fisheye5.cenqua.com/browse/~raw,r=1.1/jaxb2-commons/www/boolean-getter/index.html
Si está trabajando con JavaSE 6, entonces debe volver a empaquetarse. Consulte http://forums.java.net/jive/message.jspa?messageID=319434
Use en la compilación de hormigas como se muestra abajo:
<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
Otros consejos
Esto se ha corregido o mejor dicho, se admite en jaxb 2.1.13 (consulte JAXB-131 para más detalles). Actualice sus dependencias y configure la opción enableIntrospection xjc. Puede encontrar más detalles sobre las opciones de xjc en este enlace . Si está usando org.codehause.mojo: jaxb2-maven-plugin: 1.3.1 plugin, vea este comentario de problema para una solución.
Opción: -enableIntrospection
Aquí hay otro complemento que resuelve el problema:
http://code.google.com/p/nebulent- xjc-booleangetter / wiki / AboutThisProject
Genera el getXXX ()
adicionalmente al isXXX ()
predeterminado, por lo tanto, el código que ya usa estas clases no se rompe después de aplicar el complemento.