В проекте используется сценарий сборки ant, который вызывает wsimport, который, как я обнаружил, имеет устарел и больше не включен в JDK. Не волнуйтесь, я уверен: я могу добавить библиотеки в путь к классам и использовать новый скрипт wsimport.sh, и все будет в порядке.
За исключением того, что это не так. т.
Проект включает в себя сгенерированный код, для которого мы получаем WSDL-файл из другого источника. Похоже, что этот файл WSDL использует импорт javax, а не более новый импорт jakarta. Итак, обновление с javax до jakarta невозможно.
В настоящее время, когда я запускаю wsimport.sh в файле WSDL, я получаю экран, полный трассировки стека Java, который запускается с:
Код: Выделить всё
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource
Результаты также говорят, что мне просто нужно «обновить мои зависимости Maven», которые с тем же успехом могут быть греческими. Я не думаю, что мы используем Maven.
Во время моего, казалось бы, исчерпывающего поиска в Google и StackOverflow, я в конечном итоге был перенаправлен на этот пост в блоге:
https://nipafx.dev/java-11-migration-guide/
...который в разделе об удалении модулей Java EE частично гласит:< /p>
"Если вы пройдете компилятор, но забудете обработать время выполнения, вы получите NoClassDefFoundError:"
Что именно означает сообщение автор имеет в виду "массировать время выполнения"? Я проверил, что использую Java 11 JDK и исполняемый файл java, используя java -version и java -XshowSettings:properties. Последний даже показывает, что javax.activation.jar загружается в путь к классам. Насколько мне известно, я ничего не делал с JRE. Нужно ли мне это делать?
Я подозреваю, что это МОЖЕТ быть несоответствие версий между моим JAXB-RI и моим файлом jaxws-tools.jar, но я не смог это сделать. найдите список совместимости версий.
Мне кажется, что я упускаю что-то очевидное, но Java никогда не была моей сильной стороной. Что мне не хватает?
Подробнее здесь: https://stackoverflow.com/questions/791 ... on-datasou