I´m trying to expose services using jax-ws but the first surprise i got was that Weblogic does not support inner classes for request/response objects. After get over this situation here, i´m facing another challenge:
Generate getXXX()
rather than/additionally to the isXXX()
Method.
I need to generate this methods cause when i start the service i get the message:
<WS data binding error>could not find getter for property 'IsXXX' on com.foo.MyClass
Tried a customization:
<jaxb:globalBindings generateIsSetMethod="false" enableJavaNamingConventions="false">
without effect. :(
Any help?
BooleanGetter XJC plugin for JAXB is available at http://fisheye5.cenqua.com/browse/~raw,r=1.1/jaxb2-commons/www/boolean-getter/index.html
If you are working with JavaSE 6 then it needs to be re-packaged - see http://forums.java.net/jive/message.jspa?messageID=319434
Use in ant build like below:
<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
This has been fixed or better to say supported in jaxb 2.1.13 ( see JAXB-131 for more details). Upgrade your dependencies and configure enableIntrospection xjc option. More details on xjc options can be found on this link. If you're using org.codehause.mojo:jaxb2-maven-plugin:1.3.1 plugin see this issue comment for a workaround.
Option: -enableIntrospection
Here is another plugin which resolves the issue:
http://code.google.com/p/nebulent-xjc-booleangetter/wiki/AboutThisProject
It geneates the getXXX()
addiotionally to the default isXXX()
, hence, code already using these classes do not break after applying the plugin.