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

javax.xml.parsers.FactoryConfigurationError:找不到提供程序org.apache.xerces.jaxp.DocumentBuilderFactoryImpl,java,wso2,weblogic,wso2is,wso2carbon,Java,Wso2,Weblogic,Wso2is,Wso2carbon,我在项目中使用WSO2 Identity server进行身份验证和授权 问题: 在Tomcat中(在所有版本中)一切正常,但在Weblogic中,我遇到了一个问题。我能够成功部署并按预期运行,但是当需要更新Weblogic中的war文件时,会引发下面的异常。为了成功更新,我必须停止托管服务器,部署并启动应用程序,或者在更新后重新启动服务器。每次重新启动托管服务器似乎不可行 Stacktrace错误(来自Weblogic日志): 我做了什么 (以下是我单独和一起尝试的步骤) 1) 将包添加到we

我在项目中使用WSO2 Identity server进行身份验证和授权

问题:

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

Stacktrace错误(来自Weblogic日志):

我做了什么 (以下是我单独和一起尝试的步骤)

1) 将包添加到weblogic.xml(org.apache.*)中

2) 在pom中添加xerces

3) 当我检查identity server的库时,发现了一个导致问题的依赖项,即org.wso2.carbon.identity.sso.agent版本1.2.0。为此,在调试所有类文件时,我发现: System.setProperty(“javax.xml.parsers.DocumentBuilderFactory”, “org.apache.xerces.jaxp.DocumentBuilderFactoryImpl”)

我想这就是这个问题的实际原因,但由于我无法构建identity server的代码,所以无法对其进行注释/删除

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文件夹中


希望这能对您有所帮助。

如果需要进一步的信息,请告诉我。您是否尝试将-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.documentbuilderfactorympl添加到托管服务器的类路径中?是的,但这也会影响部署在同一服务器中的其他应用程序。
org.wso2.carbon.identity.sso.agent.saml.SAML2SSOManager.java (Line 719)
  https://github.com/wso2-extensions/identity-agent-sso/tree/master/components