Java XIncludeAwareParserConfiguration 与 XMLParserConfiguration 不兼容
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1868724/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
XIncludeAwareParserConfiguration incompatible with XMLParserConfiguration
提问by
I get this error when deploying the ear file on to WLS 10.3 on AIX platform. The same ear works fine on Windows/Linux platforms.
在 AIX 平台上将 ear 文件部署到 WLS 10.3 时出现此错误。同样的耳朵在 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)
回答by BalusC
Your classpath is likely cluttered with different versioned JAR files of the Xerces API. Cleanup the classpath. In case of a webapplication, this includes Webapp/WEB-INF/lib
, Appserver/lib
and /JRE/lib
folders.
您的类路径可能与 Xerces API 的不同版本 JAR 文件混杂在一起。清理类路径。对于 Web 应用程序,这包括Webapp/WEB-INF/lib
、Appserver/lib
和/JRE/lib
文件夹。
Most common cause is that you have different versioned Xerces JAR's spreading over the Webapp/WEB-INF/lib
and Appserver/lib
. Assuming that the ones in the appserver's library are the default-supplied and correct versions, get rid of those in the webapp's library. You should not have any appserver-specific JAR's in the webapp's library.
最常见的原因是您有不同版本的 Xerces JAR 分布在Webapp/WEB-INF/lib
和 上Appserver/lib
。假设 appserver 库中的那些是默认提供的和正确的版本,去掉 webapp 库中的那些。您不应该在 web 应用程序的库中包含任何特定于应用程序服务器的 JAR。