在整合SSH时遇到这样的问题

在整合SSH时遇到这样的问题

问题描述:

INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - [Loading XML bean definitions from ServletContext resource [/WEB-INF/classes/applicationContext.xml]]
ERROR [org.springframework.web.context.ContextLoader] - [Context initialization failed]
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/classes/applicationContext.xml]; nested exception is java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setAttribute(Ljava/lang/String;Ljava/lang/Object;)V
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setAttribute(Ljava/lang/String;Ljava/lang/Object;)V
at org.springframework.beans.factory.xml.DefaultDocumentLoader.createDocumentBuilderFactory(DefaultDocumentLoader.java:99)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:70)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
... 37 more
2011-8-30 17:05:38 org.apache.catalina.core.StandardContext listenerStart

折腾2天还没解决 谢谢帮忙

xml-apis.jar
xerces.jar

中都有这个类,应该是冲突了,你这么多框架依赖,估计不好办呐

包冲突吧 把你包的截图发出来。

也把applicationContext.xml源码放出来吧

应该是你的xml文件的问题,把applicationContext.xml贴出来看看。

Caused by: java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setAttribute(Ljava/lang/String;Ljava/lang/Object;)V

DocumentBuilderFactory里的setAttribute方法是abstract的,应该是加了含有javax.xml.parsers.DocumentBuilderFactory类的jar包导致的

这些jar包里都有DocumentBuilderFactory类,找找你的有没有冲突的

abstract class javax.xml.parsers.DocumentBuilderFactory [2340 bytes, jvm >= 1.4 ]
rt.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [3575 bytes, jvm >= 1.5 ]
rt.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2816 bytes, jvm >= 1.1 ]
PullParser2.jar
pull-parser-2.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [3232 bytes, jvm >= 1.1 ]
xml-apis.jar
xml-apis.jar
xml-apis-1.3.02.jar
client.jar
xml-apis-1.3.03.jar
javaee-api-5.0.4.jar
javaee-api-5.0.5.jar
javaee-api-5.0.3.jar
javaee-api-5.1.0-M1.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2015 bytes, jvm >= 1.1 ]
xml-apis.jar
xmlParserAPIs.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2043 bytes, jvm >= 1.2 ]
piccolo-1.03.jar
piccolo-1.0.3.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [1986 bytes, jvm >= 1.2 ]
xml-apis-1.0.b2.jar
xml-apis-2.0.0.jar
xml-apis-2.0.2.jar
excalibur-fortress-container-complete-1.1.jar
avalon-fortress-container-complete-1.1.jar
data-management-cli-1.1-beta-2-app.jar
data-management-cli-1.1-app.jar
data-management-cli-1.1-beta-4-app.jar
data-management-cli-1.1-beta-3-app.jar
continuum-xmlrpc-backup-1.1-app.jar
data-management-cli-1.2-app.jar
continuum-xmlrpc-backup-1.2-app.jar
bokobai-1.0-all.jar
easybeans-uberjar-hibernate-1.1.0-M1.jar
easybeans-uberjar-hibernate-1.1.0-M2.jar
data-management-cli-1.2.2-app.jar
continuum-xmlrpc-backup-1.2.2-app.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2817 bytes, jvm >= 1.1 ]
crimson.jar
crimson-1.1.3.jar
crimson.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [1959 bytes, jvm >= 1.1 ]
xml-apis.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2011 bytes, jvm >= 1.1 ]
xml-apis.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2067 bytes, jvm >= 1.1 ]
xml-apis.jar
xmlParserAPIs-2.6.0.jar
xmlParserAPIs-2.6.2.jar
xmlParserAPIs-2.6.1.jar
gwt-dev-1.4.62-mac.jar
gwt-dev-1.4.62-linux.jar
gwt-dev-1.4.62-windows.jar
gwt-dev-1.4.62-leopard.jar
javaee-api-5.0.2.jar
javaee-api-5.0.1.jar
javaee-api-5.0.0.jar
xmlParserAPIs-2.2.1.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2068 bytes, jvm >= 1.1 ]
jaxp-api.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2237 bytes, jvm >= 1.1 ]
gnujaxp-1.0.0.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2360 bytes, jvm >= 1.1 ]
aspectjtools-1.2rc1.jar
aspectjtools-1.2.jar
aspectjtools-1.1.1.jar
aspectjtools-1.1.0.jar
xmlParserAPIs-2.0.0.jar
xmlParserAPIs-2.0.2.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [4786 bytes, jvm >= 1.1 ]
devtools-1.1-all.jar
xerces-1.2.3.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [4513 bytes, jvm >= 1.5 ]
jaxp-api-1.4.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [4170 bytes, jvm >= 1.2 ]
jaxp-api-1.3.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [5926 bytes, jvm >= 1.1 ]
saxon-6.5.3.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [5532 bytes, jvm >= 1.1 ]
saxon-6.5.2.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [2332 bytes, jvm >= 1.1 ]
xerces-1.4.4.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [4945 bytes, jvm >= 1.1 ]
xerces-1.4.0.jar
abstract class javax.xml.parsers.DocumentBuilderFactory [3115 bytes, jvm >= 1.1 ]
xml-apis-1.3.04.jar

spring配置文件的格式有问题,不符合规范,解析不了了。

xml-apis.jar
xerces.jar
xmlParserAPIs.jar

都有冲突的类

有包没有导入 把你的applicationxml贴出来看看的。

解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar

2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar