javax. xml .bind.JAXBException with Java 11 - PullRequest
0 голосов
/ 01 мая 2020

У меня есть старое приложение для виджетов, оно использует JAXB и теперь переносится на Java 11.
Я знаю, что java. xml .bind / JAXB был удален в этой версии, поэтому мы пытаемся заменить его на Jakarta.

У нас есть jakarta.activation.jar и jakarta. xml .bind-api.jar, и он прекрасно работает для компиляции, но не для времени выполнения

когда приложение запускается, я получаю следующее:

javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
  at java.xml.bind/javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:232)
  ... ...

Классы com.sun. xml .internal. * были частью rt.jar, который, я считаю, был удален в Java 9, но последний источник в Джакарте все еще ссылается на них ... как это должно работать? Я видел сообщения с похожей проблемой, и типичное решение - Add Maven dependency.
Я не уверен в деталях, но в любом случае мы не используем Maven или Gradle и не имеем pom. xml ,
Что я могу сделать, чтобы это сработало?

1 Ответ

0 голосов
/ 01 мая 2020

Оказалось, что это не так плохо, как я думал. к.т.. jar был разбит на несколько модулей, и я начал искать нужные. jaxb-runtime.jar выглядело правильно для меня, и я запустил на нем строки / grep - в нем действительно были все классы com.sun. xml .bind!

Когда я добавил этот jar к тем Первоначальная ошибка была изменена на «some-other-class not found», и мне пришлось добавить больше jar-файлов, пока приложение не будет удовлетворено. В конце концов у меня есть это: jakarta.activation.jar, jakarta. xml .bind-api.jar, jaxb-runtime.jar, istack-commons-runtime.jar, stax-ex.jar, FastInfoset.jar, txw2 .jar

Никаких изменений в манифесте, make-файле или чем-либо еще, связанном со сборкой, только с проблемой упаковки. Большой вздох ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...