javax.xml.parsers.FactoryConfigurationError: Поставщик org.apache.xerces.jaxp.DocumentBuilderFactoryImpl не найден - PullRequest
2 голосов
/ 13 июня 2019

Я использую идентификационный сервер WSO2 в своем проекте для аутентификации и авторизации.

Проблема:

В Tomcat все работает нормально (во всех версиях), но когда дело доходит до Weblogic, у меня возникает проблема. Я могу успешно развернуть и запустить его, как и ожидалось, но когда необходимо обновить файл war в Weblogic, выдается исключение ниже. Для успешного обновления необходимо либо остановить управляемый сервер, развернуть и запустить приложение, либо перезапустить сервер после обновления. Перезапуск управляемого сервера каждый раз кажется невозможным.

Ошибка Stacktrace (из журнала Weblogic):

javax.xml.parsers.FactoryConfigurationError: Provider 
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:200)
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:152)
    at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:232)
    at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderF
actory.java:120)
    at org.apache.beehive.netui.pageflow.internal.annotationreader.Processed
AnnotationParser.parse(ProcessedAnnotationParser.java:61)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: 
org/apache/xerces/jaxp/DocumentBuilderFactoryImpl
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at javax.xml.parsers.FactoryFinder.getProviderClass(FactoryFinder.java:1
24)
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:188)
    at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:152)
    Truncated. see log file for complete stacktrace
>

RND, что я сделал: (Ниже шагов я пробовал индивидуально и вместе)

1) Добавлен пакет в weblogic.xml (org.apache. *)

2) Добавлены ксерсес в пом

3) Когда я проверил библиотеку сервера идентификации, я обнаружил зависимость, которая создает проблему - org.wso2.carbon.identity.sso.agent версии 1.2.0. Для этого, когда я отлаживаю все файлы классов, я нахожу: System.setProperty ( "javax.xml.parsers.DocumentBuilderFactory", "Org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");

org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.java (Line 719)

которая является реальной причиной этой проблемы, я думаю, но не смог прокомментировать / удалить ее, потому что я не могу собрать код сервера идентификации

4) Наконец я создал общую библиотеку для xerces в Weblogic. Но опять-таки это создает проблему с другим приложением, поскольку к нему будет применено все веб-приложение, развернутое на том же управляемом сервере.

Я пытался всеми возможными способами, которые я знаю, но не повезло.

Кто-нибудь переопределил org.wso2.carbon.identity.sso.agent (1.2.0) или знает какой-либо источник, как это сделать?

Насколько я знаю, я думаю, что это путь к решению.

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете получить код из github и выполнить следующие шаги.

  https://github.com/wso2-extensions/identity-agent-sso/tree/master/components

1) Скачать исходный код

2) Вместо интеграции с любой IDE (запустите mvn clean, а затем команду build, чтобы проверить его сборку или нет)

3) Измените код прямо с notpad, как хотите.

4) шаг 2

вы получите обновленный jar в папку .m2.

Надеюсь, это поможет вам.

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