匹配的通配符很全面,但无法找到元素mvc:annotation-driven的声明

前言

  本篇文章的来源是遇到的一个奇葩的问题,springmvc 部署之后,出现“匹配的通配符很全面,但无法找到元素 mvc:annotation-driven 的声明”这一错误问题,但是按照网上很多人说的,是 applicationContext 中缺少 mvc xsd 的声明和对应信息,但我遇到的显然不是这个问题,我的配置文件里有 mvc xsd 的声明,经过半天折腾,终于解决了,这里来记录一下。

1. 错误重现

  我们来看下是什么样的配置下出现了这个问题:
在这里插入图片描述
如图,这就是我的配置了,一眼看过去上下是能对应上的,但是为什么还会出现这个错误?令人百思不得其解,最后经过仔细观察,我们发现了一个问题,为什么 spring-context.xsdspring-mvc.xsdhttps
在这里插入图片描述

2. 解决问题

  我们是在内网出现的这个问题的,外网并没有这个问题,这就有点魔性了,所以当我们试着把那两个 https 改为 http 以后,内网居然可以运行了。
  附上我们修改之后的正确版本:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <mvc:annotation-driven/>

3. 一些思考

  首先声明我们内网和外网都是 http 模式。这次问题也引发我们的思考,xsd 文件最后应该是从 jar 包中进行访问的,当我们在外网的时候,如果本地访问不到这个 xsd,那么就会联网去 https 下载这个 xsd ,而我们的内网不能上网,所以才会报错,于是当我们改为 http 以后,本地的 jar 包中就包含有这个 xsd 的信息,于是就成功运行了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIGIS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值