getter para propriedades booleanas com JAXB
Pergunta
Eu estou tentando expor serviços usando JAX-WS, mas a primeira surpresa que eu obtive foi que Weblogic não suporta classes internas para objetos de solicitação / resposta. Depois de acabar com esta situação aqui , estou enfrentando outro desafio:
Gerar getXXX()
ao invés de / adicionalmente ao isXXX()
método.
Eu preciso gerar esta métodos Porque quando eu iniciar o serviço eu recebo a mensagem:
<WS data binding error>could not find getter for property 'IsXXX' on com.foo.MyClass
Tentou uma personalização:
<jaxb:globalBindings generateIsSetMethod="false" enableJavaNamingConventions="false">
sem efeito. : (
Qualquer ajuda?
Solução
BooleanGetter XJC plugin para JAXB está disponível em http://fisheye5.cenqua.com/browse/~raw,r=1.1/jaxb2-commons/www/boolean-getter/index.html
Se você está trabalhando com JavaSE 6, em seguida, ele precisa ser re-embalados - veja http://forums.java.net/jive/message.jspa?messageID=319434
Use em construção Ant como abaixo:
<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
Outras dicas
Isso foi corrigido ou melhor dizer suportado em jaxb 2.1.13 (ver JAXB-131 para mais detalhes). Atualizar suas dependências e configure enableIntrospection xjc opção. Mais detalhes sobre as opções XJC podem ser encontradas no este link . Se você estiver usando org.codehause.mojo: maven-jaxb2-plugin: 1.3.1 plug-in ver esta questão comentário para uma solução alternativa.
Opção: -enableIntrospection
Aqui está um outro plugin que resolve o problema:
http://code.google.com/p/nebulent- xjc-booleangetter / wiki / AboutThisProject
É geneates o getXXX()
addiotionally ao isXXX()
padrão, portanto, o código já está usando essas classes não quebrar após a aplicação do plugin.