繁体   English   中英

javax.xml.parsers.FactoryConfigurationError:找不到提供程序org.apache.xerces.jaxp.DocumentBuilderFactoryImpl

[英]javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found

我在我的项目中使用WSO2身份服务器进行身份验证和授权。

问题:

在Tomcat(所有版本)中,一切都工作正常,但是谈到Weblogic时,我遇到了问题。 我能够成功部署并按预期运行,但是当需要在Weblogic中更新war文件时,将引发以下异常。 为了成功更新,我要么必须停止受管服务器,部署并启动应用程序,要么需要在更新后重新启动服务器。 每次重新启动受管服务器似乎都不可行。

错误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)将xerces添加到pom中

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)最后,我在Weblogic中为xerces创建了共享库。 但是,它再次对另一个应用程序造成了问题,因为它将应用部署在同一托管服务器中的所有webapp。

我尝试了所有可能的方法,但是没有运气。

是否有人重写了org.wso2.carbon.identity.sso.agent(1.2.0),或者知道如何实现此目的?

据我所知,我猜这就是解决方案的方式。

您可以从github获取代码并执行以下步骤。

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

1)下载源代码

2)而不是与任何IDE集成(运行mvn clean然后使用build命令检查其构建)

3)直接从notpad更改代码,无论您想要什么。

4)步骤2

您将把更新的jar放入.m2文件夹。

希望这会帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM