Документ Javadoc не может найти классы времени выполнения JAXB в Fat JAR (jakarta.xml.bind.JAXBException: реализация не JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Документ Javadoc не может найти классы времени выполнения JAXB в Fat JAR (jakarta.xml.bind.JAXBException: реализация не

Сообщение Anonymous »

Я создаю документ Javadoc, который генерирует документацию в файлах XML с использованием JAXB, и у меня возникли проблемы с его правильной работой с javadoc. Когда я запускаю документ через javadoc, я получаю сообщение об ошибке, указывающее, что реализация JAXB не может быть найдена, хотя в автономном основном классе все работает нормально.
Вот что я сделано:
  • Я использовал Doclet API для создания объекта документации.
  • Я использовал JAXBContext чтобы преобразовать этот объект документации в XML.
  • Я упаковал свой проект в виде толстого JAR-файла, включая зависимости jakarta.xml.bind-api и jaxb-runtime .
Вот команда, которую я запускаю:

Код: Выделить всё

javadoc -docletpath jouda/build/libs/jouda-all.jar \
-cp jouda/build/libs/jouda-all.jar \
-doclet nassermohamedit.jouda.gen.JoudaDoclet Test.java

Когда я запускаю эту команду, я получаю следующую ошибку:

Код: Выделить всё

Loading source file Test.java...
Constructing Javadoc information...
jakarta.xml.bind.JAXBException: Implementation of Jakarta XML Binding-API has not been found on module path or classpath.
- with linked exception:
[java.lang.ClassNotFoundException: org.glassfish.jaxb.runtime.v2.ContextFactory]
at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:250)
at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:238)
at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:386)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:605)
at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:546)
at nassermohamedit.jouda.gen.XmlGenerator.generate(XmlGenerator.java:20)
...
Caused by: java.lang.ClassNotFoundException: org.glassfish.jaxb.runtime.v2.ContextFactory

Я подтвердил, что org.glassfish.jaxb.runtime.v2.ContextFactory присутствует в jouda-all.jar, проверив содержимое JAR. Запуск моего кода как отдельного приложения работает без каких-либо проблем, поэтому я знаю, что настройка JAXB правильна, если она не вызывается через javadoc.

Подробнее здесь: https://stackoverflow.com/questions/791 ... xml-bind-j
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»