文档章节

XParseException:schema_reference.4:Failed to re...

Q
 Qkxh320
发布于 2013/10/29 14:37
字数 645
阅读 802
收藏 1

异常如图:

平时可以正常运行的springMVC项目,在用maven加入依赖,添加jar包后运行,出现如下异常:

XParseException:schema_reference.4:Failed to read schema document  如下:

异常提示:找不到xsd文件,在spring的web.xml文件写好基本配置之后,配置文件《servlet-name》-servlet.xml文件中的beans定义的xsi:schemaLocation为,如图:

首先要知道:spring在加载xsd文件时总是先试图在本地查找xsd文件(spring的jar包中已经包含了所有版本的xsd文件),

在很多spring的jar包里,在MERA-INF目录下都有一个spring.schemas,这是一个property文件,

如图为使用maven配置的spring-beans-3.0.3的jar包下的META-INF目录下的spring.schemas目录;

异常出现的原因:实际上,这个文件就是spring关于xsd文件在本地存放路径的映射,spring就是通过这个在本地查找xsd文件的;在排除URL输入有误之后,声明的xsd文件找不到可能就是在本地不存在。一般来说,新版本的spring jar包会将所有(应该是自x.0以后)的xsd打包,并在spring.schemas文件中加入对应项,出现问题的情况往往是声明使用了一个高版本的xsd文件,如3.0,但当初定义spring的jar包却是2.5之前的版本,由于2.5版本自然不可能包含3.0的xsd文件,此时就会导致spring去站点下载目标xsd文件。

如遇断网或是目标站点不可用,上述问题就会发生。

 

解决方法:在实际开发中,最常导致这一问题的原因其实遇使用了maven的一个“assembly”的打包插件有关;荐使用另一款打包插件“shade”;因为assembly在对项目进行打包时,只能讲一个版本的jar包下的spring.schemas文件放入最终打出的jar包里,而以前版本的xsd文件就会丢掉,导致文件找不到;;;而shade插件在打包的同时不会抛弃以前的spring.schemas文件,而是把他们进行合并,并最终生成单一的jar包,所以spring.schemas包含了所有出现过得版本的集合!

 

具体在pom.xml文件中添加maven-shade-plugin插件的步骤,

csdn上搜::;;使用maven插件对java工程进行打包 ,作者:chenzhou123520(..博客不让留外链)

 

哎,困扰了几天的问题,搞的心情一直不好,在前辈们的帖子上找到了。

现在终于解决了,记下来备用!!!

 

 

© 著作权归作者所有

上一篇: Git记住密码
下一篇: Git记住密码
Q
粉丝 2
博文 2
码字总数 645
作品 0
杭州
私信 提问
Multiple annotations found at this line:

Multiple annotations found at this line: - schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/beans/spring-beans-4.0.xsd', because 1) coul......

天池番薯
2015/09/28
5.3K
2
Multiple annotations found at this line:     - cvc-complex-type.2.4.c

Multiple annotations found at this line: - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'context:annotation-config'. - sc......

知行合一1
2017/10/24
857
0
-

Multiple annotations found at this line: - - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:annotation-driven'. - sche......

知行合一1
2016/11/05
182
1
dubbo的消费者配置文件 spring-consumer.xml 在eclipse中出现大的红叉

xml文件内容如下 其中 前出现红叉,效果如图: 把鼠标放在叉上面后显示内容如下: Multiple annotations found at this line: - cvc-complex-type.2.4.c: The matching wildcard is strict, ...

天宇-迥
2014/07/22
19.7K
4
maven-shade-plugin

今日我们开发遇到spring的xsd文件打包的时候,丢失了,导致无法启动, rg.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 33; schema_reference.4: Failed to read schema docu......

疯狂的艺术家
2013/11/20
3.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

cesium调用天地图服务

本文转载于:专业的前端网站➧cesium调用天地图服务 全球矢量地图服务 var viewer = new Cesium.Viewer("cesiumContainer", { animation: false, //是否显示动画控件 baseLayerPi...

前端老手
30分钟前
4
0
Docker常用命令

场景一:镜像下载、运行及删除 COMMAND DESC 查看 docker images 列出所有镜像(images) docker ps 列出正在运行的容器(containers) docker ps -a 列出所有的容器 docker pull centos 下载cen...

_Change_
30分钟前
5
0
Spark ML使用DataFrame进行K-Means

1.前言 前一篇文章使用了RDD的方式,进行了K-Means聚类. 从Spark 2.0开始,程序包中基于RDD的API spark.mllib已进入维护模式.现在,用于Spark的主要机器学习API是软件包中基于DataFrame的API...

一位不知名的帅气网友
33分钟前
4
0
当遇到美女面试官之如何理解Redis的Expire Key(过期键)

  在面试中遇到美女面试官时,我们以为面试会比较容易过,也能好好表现自己技术的时候了。然而却出现以下这一幕,当美女面试官听说你使用过Redis时,那么问题来了。 👩面试官:Q1,你知道...

ccww_
37分钟前
5
0
干货来袭!游戏背景音乐的角色创建和主界面

角色创建/选择 在一些大型的游戏中,例如多人在线的游戏玩家必须创建一个游戏的虚拟人物进行扮演游戏。初次玩这款游戏的人都会进行创建,选择职业起名字性别选择编辑人设样式等等的操作,通常...

奇亿音乐
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部