средство получения логических свойств с помощью JAXB
Вопрос
Я пытаюсь предоставить сервисы с помощью jax-ws, но первым сюрпризом, который я получил, было то, что Weblogic не поддерживает внутренние классы для объектов запроса / ответа.После того, как преодолеете эту ситуацию здесь, я сталкиваюсь с другой проблемой:
Генерировать getXXX()
вместо/дополнительно к isXXX()
Способ.
Мне нужно сгенерировать эти методы, потому что когда я запускаю службу, я получаю сообщение:
<WS data binding error>could not find getter for property 'IsXXX' on com.foo.MyClass
Попробовал настроить:
<jaxb:globalBindings generateIsSetMethod="false" enableJavaNamingConventions="false">
безрезультатно.:(
Какая-нибудь помощь?
Решение
Плагин BooleanGetter XJC для JAXB доступен по адресу http://fisheye5.cenqua.com/browse /~сырой,r=1.1/jaxb2-commons/www/boolean-getter/index.html
Если вы работаете с JavaSE 6, то его необходимо повторно упаковать - см. http://forums.java.net/jive/message.jspa?messageID=319434
Используйте в сборке ant, как показано ниже:
<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
Другие советы
Это было исправлено или, лучше сказать, поддержано в jaxb 2.1.13 ( см. ДЖАКСБ-131 для получения более подробной информации).Обновите свои зависимости и настройте опцию enableIntrospection xjc.Более подробную информацию о опциях xjc можно найти на эта ссылка.Если вы используете org.codehouse.mojo:jaxb2-maven-plugin: плагин 1.3.1, смотрите комментарий к этому вопросу для обходного пути.
Вариант:-Включить интроспекцию
Вот еще один плагин, который решает проблему:
http://code.google.com/p/nebulent-xjc-booleangetter/wiki/AboutThisProject
Это порождает getXXX()
дополнительно к значению по умолчанию isXXX()
Следовательно, код, уже использующий эти классы, не ломается после применения плагина.