Unable to locate Spring NamespaceHandler for XML schema namespace异常的处理方法

Spring框架容器配置文件无法解析名称空间Unable to locate Spring NamespaceHandler for XML schema namespace异常的处理方法

在使用spring 框架实践中,容器的xml配置文件头部如需要第三方的名称空间,所谓的名称空间,就是一些xml配置约定,元素类型、格式要求等。但是build工程时,会报错Unable to locate Spring NamespaceHandler for XML schema namespace,究其原因,是在工程的classpath路径下未找到正确的NamespaceHandler来解析配置文件中的名称空间。因此需要在工程的classpath路径中导入包含指定的NamespaceHandler的jar包。如果使用maven管理依赖,只需要在pom文件中添加一个jar包。

遇到的坑

在项目开发或测试时,工程的间接依赖jar包已经包含了spring配置文件所需的NamespaceHandler。也就是说NamespaceHandler已经加到classpath中了,所以在build工程时不会抛异常Unable to locate Spring NamespaceHandler for XML schema namespace。为此在老的build正常的工程下运行maven命令mvn dependency:tree查看依赖树,然后搜索包含NamespaceHandler的依赖jar,霍然在列。回到新工程,果断添加这个依赖,重新build,问题立马解决。与其说是问题,不如说是自己的框架学习的盲点。需要需要深究。

这是公司的名称空间:

自定义名称空间声明

build工程时报异常,抽丝剥茧,会看到如下一行:配置问题,不能定位到名称空间处理器

解析名称空间错误

在运行正常的老工程上执行mvn dependency:tree:

依赖树

回到新工程,添加上图依赖

添加依赖

重新build,测试一把,搞定

添加依赖

参考文章:http://www.baeldung.com/unable-to-locate-spring-namespacehandler-for-xml-schema-namespace


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值