Сгенерированный xjc код ссылается на аннотацию OverrideAnnotationOf из внутреннего пакета sun

Я пытаюсь создать классы Java из набора схем XML. Следующий файл привязки используется для обработки смешанного содержимого в схемах:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings
 xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"
 xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="xjc">
  <jaxb:globalBindings generateMixedExtensions="true"/>
</jaxb:bindings>

Генерация кода работает нормально, но один из сгенерированных классов имеет @OverrideAnnotationOf из пакета com.sun.xml.internal.bind.annotation. Этот пакет включен в rt.jar, но обычный java-компилятор не может его найти (и, вероятно, не должен его находить, потому что он встроен в sun).

Есть ли способ справиться со смешанным контентом и не использовать OverrideAnnotationOf из внутреннего пакета sun в моем сгенерированном коде?


person Gert-Jan    schedule 29.01.2013    source источник
comment
Я понял, что могу скомпилировать сгенерированные классы с опцией -XDignore.symbol.file=true (см. andrew- haley.livejournal.com), но тогда мое приложение может не работать на разных JRE   -  person Gert-Jan    schedule 30.01.2013
comment
Проблема решается переходом на муравьиную задачу XJC. Он также генерирует код с аннотацией OverrideAnnotationOf, но теперь он поступает из пакета com.sun.xml.bind.annotation, включенного в jaxb-impl.jar.   -  person Gert-Jan    schedule 01.02.2013


Ответы (1)