Я пытаюсь обновить свои приложения с Liberty 18.0.0.1 до 18.0.0.2, но теперь все они не работают:
java.lang.NoClassDefFoundError: javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
...
проблема, похоже, связана с ldapRegistry-3.0 - как только эта функция включена, все запросы jax-rs не работают. После удаления ldapRegistry код работает нормально, но мне нужна эта функция для моих приложений ...
Я даже построил небольшой пример, чтобы продемонстрировать это, с единственным RestEndpoint / v1 / api / employee: Образец проектаконфигурация сервера
Это ошибка, могу я где-нибудь сообщить об этом? или я тут что-то не так делаю?
Вот дамп сервера
Спасибо
Я полагаю, что кто-то другой сообщил о той же проблеме, которую вы наблюдаете, и я работаю над ее исправлением здесь: github.com/OpenLiberty/open-liberty/issues/4404
О, круто. Я добавлю комментарий к этой ошибке. Спасибо @AndyGuibert
Похоже, это вызвано тонким конфликтом загрузки классов разделенного пакета. Мне удалось воспроизвести эту проблему с помощью Liberty 18.0.0.2, и основное исключение выглядит примерно так:
java.lang.NoSuchMethodException: javax.xml.bind.annotation.W3CDomHandler.createUnmarshaller(javax.xml.bind.ValidationEventHandler)
В этом случае кажется, что javax.xml.bind.annotation.W3CDomHandler
был загружен из загрузчика классов A, а javax.xml.bind.ValidationEventHandler
был загружен дважды - один раз из загрузчика классов A и один раз из загрузчика классов B. , но вместо этого он ищет метод javax.xml.bind.annotation.W3CDomHandler.createUnmarshaller(javax.xml.bind.ValidationEventHandler)
, где createUnmarshaller(ValidationEventHandler)
поступает из загрузчика классов B.
Эта ошибка будет устранена в следующей версии Liberty (18.0.0.3).
вы можете сообщить об этой ошибке в репозитории OpenLiberty на github: github.com/OpenLiberty/open-liberty