Java XIncludeAwareParserConfiguration与XMLParserConfiguration不兼容

Java XIncludeAwareParserConfiguration与XMLParserConfiguration不兼容,java,parsing,xerces,Java,Parsing,Xerces,在AIX平台上将ear文件部署到WLS 10.3时,我遇到了这个错误。同样的ear在Windows/Linux平台上也可以正常工作 Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration incompatible with org.apache.xerces.xni.parser.XMLParserConfiguration at org.apa

在AIX平台上将ear文件部署到WLS 10.3时,我遇到了这个错误。同样的ear在Windows/Linux平台上也可以正常工作

Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration incompatible with org.apache.xerces.xni.parser.XMLParserConfiguration
    at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
    at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
    at weblogic.xml.jaxp.WebLogicDocumentBuilderFactory.newDocumentBuilder(WebLogicDocumentBuilderFactory.java:140)
    at com.bea.security.xacml.policy.PolicyUtils.getRootNode(PolicyUtils.java:54)
    at com.bea.security.xacml.policy.PolicyUtils.read(PolicyUtils.java:86)
    at com.bea.security.providers.xacml.store.BasePolicyStore.getAbstractPolicy(BasePolicyStore.java:1251)
    at com.bea.security.providers.xacml.store.BasePolicyStore.readPolicy(BasePolicyStore.java:1231)
    at com.bea.security.providers.xacml.store.BasePolicyStore.readPolicy(BasePolicyStore.java:1114)
    at com.bea.security.providers.xacml.entitlement.PolicyManager.listPolicies(PolicyManager.java:747)
    at weblogic.security.providers.xacml.DeployableAuthorizationProviderV2Helper.startDeployPolicies(DeployableAuthorizationProviderV2Helper.java:90)
    at weblogic.security.providers.xacml.authorization.XACMLAuthorizationProviderImpl.startDeployPolicies(XACMLAuthorizationProviderImpl.java:269)
    at com.bea.common.security.internal.legacy.service.PolicyDeployerProviderImpl$V2Adapter.startDeployPolicies(PolicyDeployerProviderImpl.java:69)
    at com.bea.common.security.internal.service.PolicyDeploymentServiceImpl$DeploymentHandlerImpl.<init>(PolicyDeploymentServiceImpl.java:143)
    at com.bea.common.security.internal.service.PolicyDeploymentServiceImpl$DeploymentHandlerImpl.<init>(PolicyDeploymentServiceImpl.java:129)
    at com.bea.common.security.internal.service.PolicyDeploymentServiceImpl$ServiceImpl.startDeployPolicies(PolicyDeploymentServiceImpl.java:97)
    at weblogic.security.service.WLSPolicyDeploymentServiceWrapper$DeploymentHandlerImpl.<init>(WLSPolicyDeploymentServiceWrapper.java:70)
    at weblogic.security.service.WLSPolicyDeploymentServiceWrapper$DeploymentHandlerImpl.<init>(WLSPolicyDeploymentServiceWrapper.java:60)
    at weblogic.security.service.WLSPolicyDeploymentServiceWrapper.startDeployPolicies(WLSPolicyDeploymentServiceWrapper.java:40)
    at weblogic.security.service.AuthorizationManager.startDeployPolicies(AuthorizationManager.java:489)
    at weblogic.servlet.security.internal.WebAppSecurityWLS.<init>(WebAppSecurityWLS.java:72)
    at weblogic.servlet.security.internal.ServletSecurityManager.<init>(ServletSecurityManager.java:39)
    at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:416)
    at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:464)
    at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:414)
    at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:901)
    at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:345)
原因:java.lang.ClassCastException:org.apache.xerces.parsers.XIncludeAwareParserConfiguration与org.apache.xerces.xni.parser.XMLParserConfiguration不兼容
位于org.apache.xerces.parsers.DOMParser。(未知来源)
位于org.apache.xerces.parsers.DOMParser。(未知来源)
位于org.apache.xerces.jaxp.DocumentBuilderImpl。(未知来源)
位于org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(未知源)
在weblogic.xml.jaxp.WebLogicDocumentBuilderFactory.newDocumentBuilder(WebLogicDocumentBuilderFactory.java:140)
位于com.bea.security.xacml.policy.PolicyUtils.getRootNode(policUtils.java:54)
位于com.bea.security.xacml.policy.PolicyUtils.read(policUtils.java:86)
位于com.bea.security.providers.xacml.store.BasePolicyStore.getAbstractPolicy(BasePolicyStore.java:1251)
位于com.bea.security.providers.xacml.store.BasePolicyStore.readPolicy(BasePolicyStore.java:1231)
位于com.bea.security.providers.xacml.store.BasePolicyStore.readPolicy(BasePolicyStore.java:1114)
位于com.bea.security.providers.xacml.entity.PolicyManager.ListPolicys(PolicyManager.java:747)
位于weblogic.security.providers.xacml.DeployableAuthorizationProviderV2Helper.StartDeployPolicys(DeployableAuthorizationProviderV2Helper.java:90)
位于weblogic.security.providers.xacml.authorization.XACMLAuthorizationProviderImpl.StartDeployPolicys(XACMLAuthorizationProviderImpl.java:269)
位于com.bea.common.security.internal.legacy.service.PolicyDeployerProviderImpl$V2Adapter.StartDeployPolicys(PolicyDeployerProviderImpl.java:69)
位于com.bea.common.security.internal.service.PolicyDeploymentServiceImpl$DeploymentHandlerImpl.(PolicyDeploymentServiceImpl.java:143)
位于com.bea.common.security.internal.service.PolicyDeploymentServiceImpl$DeploymentHandlerImpl.(PolicyDeploymentServiceImpl.java:129)
位于com.bea.common.security.internal.service.PolicyDeploymentServiceImpl$ServiceImpl.StartDeployPolicys(PolicyDeploymentServiceImpl.java:97)
在weblogic.security.service.WLSPolicyDeploymentServiceWrapper$DeploymentHandlerImpl.(WLSPolicyDeploymentServiceWrapper.java:70)
在weblogic.security.service.WLSPolicyDeploymentServiceWrapper$DeploymentHandlerImpl.(WLSPolicyDeploymentServiceWrapper.java:60)
位于weblogic.security.service.WLSPolicyDeploymentServiceWrapper.StartDeployPolicys(WLSPolicyDeploymentServiceWrapper.java:40)
在weblogic.security.service.AuthorizationManager.StartDeployPolicys(AuthorizationManager.java:489)上
位于weblogic.servlet.security.internal.WebAppSecurityWLS。(WebAppSecurityWLS.java:72)
位于weblogic.servlet.security.internal.ServletSecurityManager。(ServletSecurityManager.java:39)
位于weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:416)
位于weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:464)
位于weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:414)
位于weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:901)
位于weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:345)

您的类路径可能被XercesAPI的不同版本的JAR文件弄得乱七八糟。清理类路径。对于WEB应用程序,这包括
Webapp/WEB-INF/lib
Appserver/lib
/JRE/lib
文件夹


最常见的原因是,在
Webapp/WEB-INF/lib
Appserver/lib
上分布着不同版本的Xerces JAR。假设appserver库中的是默认提供的和正确的版本,请删除webapp库中的版本。webapp的库中不应该有任何特定于appserver的JAR。

确保您的JAR版本是兼容的。这不会与环境变量问题相关联,例如,您在AIX上使用的是什么JDK?您使用的是认可的机制吗?默认情况下,Weblogic使用父类加载器优先策略,因此在webapp
WEB-INF/lib
中使用特定于appserver的JAR应该不会有任何问题。。。除非OP在
weblogic.xml
部署描述符中使用
配置EAR。但情况似乎并非如此,因为EAR在Linux/Windows上运行良好。所以我宁愿看JVM级别。记得我Websphere是如何做到这一点的。但是,它可以通过两个选项进行配置:
应用程序
(默认;appserver libs优先)和
模块
(webapp libs优先)。