это опасная ситуация без простого решения. Liberty пытается «спрятать» внутренние пакеты, чтобы избежать сценариев, когда пользователям нужна немного другая версия реализации, чем та, которую предоставляет среда - наиболее яркий пример этой проблемы был в традиционной WAS, где пользователи хотели использовать другую версию Jakarta Commons Logging. чем то, что было поставлено с WAS - для этого требовалось, чтобы пользователи предоставили свои собственные, либо в изолированной общей библиотеке, либо использовали другие хаки загрузки родительских классов, чтобы это работало. Liberty позволяет избежать этих проблем, изолируя внутренние реализации от пользовательских приложений.
Так что это прекрасно работает, когда пользователь хочет использовать версию сторонней библиотеки, отличную от той, что предоставляет Liberty, но, как вы обнаружили,не так хорошо работает, когда ваше унаследованное приложение зависит от этих скрытых / изолированных сторонних библиотек.
Наиболее идеальным решением будет рефакторинг кода приложения, чтобы он не зависел от внутренних классов JAXB - кто-то с болееВ этом может помочь экспертиза JAXB ... Но, похоже, это неосуществимо, поэтому другой альтернативой будет создание пользовательской функции. Пользовательская функция, по сути, является расширением среды выполнения Liberty, поэтому она имеет доступ к пакетам, которых нет у пользовательских приложений. Он также позволяет вам добавлять пакеты в качестве API для пользовательских приложений - так что вы можете использовать пользовательскую функцию для добавления com.sun.xml.bind.marshaller
в качестве общедоступного API - тогда ваше пользовательское приложение может свободно расширять его. Вы также можете включить свой класс MyNamespacePrefixMapperImpl
в свою пользовательскую функцию и зарегистрировать ее там, чтобы она автоматически применялась ко всем приложениям на вашем сервере.
Более подробную информацию о пользовательских функциях можно найти здесь: https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_feat_example.html
Надеюсь, это поможет, Энди