今天在把自己的项目转为maven架构的时候,碰到一个很奇葩的问题具体如下:
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
Line 23 in XML document from class path resource [spring-mvc.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cos-all-limited.1.2: An ''all'' model group must appear in a particle with '{'min occurs'}'='{'max occurs'}'=1, and that particle must be part of a pair which constitutes the '{'content type'}' of a complex type definition.
Caused by: org.xml.sax.SAXParseException: cos-all-limited.1.2: An ''all'' model group must appear in a particle with '{'min occurs'}'='{'max occurs'}'=1, and that particle must be part of a pair which constitutes the '{'content type'}' of a complex type definition.
其实,正确的方法应该是先把该项目总的jar包删除后,再从原项目导入jar包,这个是肯定不会出问题的。因为是用maven控制的包的导入,只能是在导入的时候出现了包冲突的问题,造成了解析错误,重新查看jar包引入的过程,原来是在导入dbcp的jar包时,又引入了一个xml文档解析的jar包,造成了冲突。
fastJson-1.2.31.jar里面要implements GeneraicHttpMessageConverter 但spring-mvc-3.1.jar里面没有这个类,所以版本改成fastJson-1.2.2.jar
正确的引入dbcp依赖的方法是:commons-dbcp-1.2版本改成1.4
排除依赖包
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.1</version>
<exclusions>
<exclusion>
<artifactId>xercesImpl</artifactId>
<groupId>xerces</groupId>
</exclusion>
</exclusions>
</dependency>
主要是这个解析错误:
查了很多资料并没有找到答案,我就猜想是不是tomcat本身的问题,就尝试用MyEclipse自带的tomcat启动,结果没有报错。这里肯定了,是我的tomcat出问题。
我比较我使用的tomcat和myEclipse里的tomcat,最终发现,我使用的tomcat里面多了三个jar包;移除这三个jar包,问题解决。
ojdbc14.jar;
log4j-1.2.17.jar;
xercesImpl-2.0.2.jar;
我猜想是xercesImpl-2.0.2.jar;导致的,具体原因,由于比较晚并没有深究,有空研究
spring-mvc-3.1和commons-dbcp-1.2 和fastJson1.2.31冲突
最新推荐文章于 2020-12-14 19:18:17 发布