Я использую идентификационный сервер 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) или знает какой-либо источник, как это сделать?
Насколько я знаю, я думаю, что это путь к решению.