spring-aop-4.2.0的一个隐藏坑

今天在一个项目使用aop时,开发环境没有问题,但是在测试环境缺出现

cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 ‘aop:aspectj-autoproxy’ 的声明

第一时间去检查配置文件
xmlns:aop=“http://www.springframework.org/schema/aop”

xsi:schemaLocation="
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd”

发现都是正常的,但为什么测试环境还是会报错呢?

没办法的情况下,把 spring-aop-4.2.0.RELEASE.jar解压出来,看了一下

路径:org\springframework\spring-aop\4.2.0.RELEASE\META-INF
spring-aop-4.2.0的一个隐藏坑_第1张图片
org\springframework\spring-aop\4.2.0.RELEASE\org\springframework\aop\config
spring-aop-4.2.0的一个隐藏坑_第2张图片
发现只有4.1的xsd文件

后来就把spirng.xml文件中的
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
改为
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
发现测试环境就能正常读取这个配置文件,并且能正常使用
aop:aspectj-autoproxy

然后我又重新下了一个4.2.8的spring-aop的jar包,发现里面是有4.2xsd文件的,所以推测是不是4.2.0忘了吧xsd文件添加进去??

总结:算是解决了一个测试环境与生产环境都存在的 但是在开发环境无法重现的问题。但是还没弄清楚为什么开发环境可以使用http://www.springframework.org/schema/aop/spring-aop-4.2.xsd,到底是因为网络原因还是说因为idea开发工具的原因还需要进一步去研究。

你可能感兴趣的:(bug排查)