Weblogi c выпуск загрузчика классов - PullRequest
0 голосов
/ 10 апреля 2020

У меня проблема с загрузчиком классов Weblogi c.

Когда я пытаюсь развернуть мое приложение на WL 12.2.1.2.0, оно не работает. В журналах на моем сервере я вижу

java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal

Класс принадлежит библиотеке xml-apis. Библиотека входит в мое приложение с другой зависимостью (такой как транзитивная зависимость). Версия xml-apis - 1.4.01.

После этого я добавил исключение в свой дескриптор развертывания:

<container-descriptor>
    <prefer-application-packages>
        <package-name>org.w3c.dom.*</package-name>
    </prefer-application-packages>
</container-descriptor>

И позже новое развертывание. Описанная проблема с org.w3c.dom.ElementTraversal была решена. Больше нет информации о пропущенном классе org.w3c.dom.ElementTraversal.

Но есть новая проблема: java.lang.ClassNotFoundException: org.w3c.dom.Document

После анализа я выяснил, что класс org.w3c.dom.Document происходит из JRE (jre / lib / rt.jar). Поэтому в дескрипторе развертывания я сказал:

"если мне нужно что-то из пакета org.w3c.dom.* - загрузите его из моего дистрибутива приложения". И сейчас есть такая непоследовательность.

У меня была идея использовать WL Classloader Analysis Tool (CAT), но это невозможно, потому что развертывание не удалось.

Исключая библиотеки xml-apis и xerces из моего уха, о которых мы упоминали здесь мне не помогло.

Кто-нибудь знает, как решить мою проблему?

Заранее спасибо за ваши ответы.

1 Ответ

0 голосов
/ 24 апреля 2020

Исключение библиотеки xercexImpl из моего EAR без изменения дескриптора развертывания решило мою проблему. Упомянутые классы во время нового развертывания были загружены из дистрибутива WL.

...