WebLogic 9.2和Xerces144.jar中的EAR异常

WebLogic 9.2和Xerces144.jar中的EAR异常,weblogic,weblogic9.x,Weblogic,Weblogic9.x,我正在使用一个应用程序,其中我将xerces144.jar文件放在war文件的WEB-INF/lib文件夹中的EAR文件中。当我将这个EAR文件部署到WebLogic服务器并启动应用程序时,我得到以下异常。我们正在使用SpringMVC。但是,如果我只使用WAR文件部署同一个应用程序,那么一切都可以正常工作。我还注意到,如果我从EAR文件中删除xerces144.jar文件并部署EAR,那么它的部署将不会出现任何问题。当xerces144.jar文件包含在WAR中时,与EAR中包含并部署的同一个

我正在使用一个应用程序,其中我将xerces144.jar文件放在war文件的WEB-INF/lib文件夹中的EAR文件中。当我将这个EAR文件部署到WebLogic服务器并启动应用程序时,我得到以下异常。我们正在使用SpringMVC。但是,如果我只使用WAR文件部署同一个应用程序,那么一切都可以正常工作。我还注意到,如果我从EAR文件中删除xerces144.jar文件并部署EAR,那么它的部署将不会出现任何问题。当xerces144.jar文件包含在WAR中时,与EAR中包含并部署的同一个WAR相比,它有什么不同

2009-10-27 21:05:50,468 ERROR - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Parser configuration exception parsing XML from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is javax.xml.parsers.ParserConfigurationException: Unable to validate using XSD: Your JAXP provider [org.apache.xerces.jaxp.Document BuilderFactoryImpl@19b5ed8] does not support XML Schema. Are you running on Java
 1.4 with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB 
当这个xerces144.jar文件包含在WAR中时,它与EAR中包含并部署的同一个WAR有什么区别

2009-10-27 21:05:50,468 ERROR - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Parser configuration exception parsing XML from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is javax.xml.parsers.ParserConfigurationException: Unable to validate using XSD: Your JAXP provider [org.apache.xerces.jaxp.Document BuilderFactoryImpl@19b5ed8] does not support XML Schema. Are you running on Java
 1.4 with Apache Crimson? Upgrade to Apache Xerces (or Java 1.5) for full XSD support.
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB 
我认为这与我的工作有关。当在EAR中部署WAR或部署相同的WAR时,Weblogic不会创建相同的类加载器层次结构

最奇怪的是Weblogic 9.x在3rdparty.jar中附带Xerces 1.4.4(至少,9.1是这样,检查9.2的版本会很有趣)。通过在命令行上运行以下命令,可以轻松验证这一点:

$ java -cp 3rdparty.jar org.apache.xerces.framework.Version
老实说,我不知道当你把Xerces打包在战争中,在耳朵里部署战争时到底发生了什么,问题是什么。在您描述的所有场景中,我的理解是类路径上的某个地方有一个Xerces jar


如果你真的想在战争中部署Xerces-144.jar,你能试着在
weblogic.xml
中设置并测试这个配置吗?

因为weblogic确实有相同版本的Xerces,我相信没有必要在你的应用程序中打包它