关于spring配置的问题

近日学习spring时遇到了这个问题:

  1. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 12 in XML document from URL [file:/F: /workspace/spring/target/classes /applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 55; cvc- complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。

报错如下:

  1. 17:21:22,400 ERROR main context.ContextLoader:331 - Context initialization failed
  2. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 14 in XML document from URL [file:/F:
    /workspace/spring/target/classes
    /applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 54; cvc-
    complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。
  3. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
  4. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
  5. at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
  6. at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
  7. at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
  8. at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
  9. at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
  10. at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
  11. at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
  12. at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
  13. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452)
  14. at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
  15. at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
  16. at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
  17. at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
  18. at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
  19. at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
  20. at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
  21. at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
  22. at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
  23. at org.apache.catalina.startup.Embedded.start(Embedded.java:825)
  24. at org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558)
  25. at org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255)
  26. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
  27. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
  28. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
  29. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
  30. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
  31. at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
  32. at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
  33. at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
  34. at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
  35. at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
  36. at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
  37. at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
  38. at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
  39. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  40. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  41. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  42. at java.lang.reflect.Method.invoke(Method.java:483)
  43. at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
  44. at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
  45. at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
  46. at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

查了好多资料,发现是applicationContext.xml文件有点小问题。

报错时的文件头:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:tx="http://www.springframework.org/schema/tx"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xmlns:jee="http://www.springframework.org/schema/jee"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/beans
  10. http://www.springframework.org/schema/beans/spring-beans.xsd">

改为:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. <span style="white-space:pre">  </span>xmlns:context="http://www.springframework.org/schema/context"
  4. <span style="white-space:pre">  </span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. <span style="white-space:pre">  </span>xmlns:aop="http://www.springframework.org/schema/aop"
  6. <span style="white-space:pre">  </span>xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. <span style="white-space:pre">  </span>xmlns:jee="http://www.springframework.org/schema/jee"
  8. <span style="white-space:pre">  </span>xmlns:tx="http://www.springframework.org/schema/tx"
  9. <span style="white-space:pre">  </span>xsi:schemaLocation="
  10. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  11. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  12. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  13. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  14. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
  15. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

就OK了~(*^__^*) ,注:不要拷贝上面配置,要根据自己项目缺少的schema而添加

原因:

我这个原因是有些“schemaLocation”没有写。把对应的加上就可以了。其根本原因是spring启动是时候要通过相应的xsd文件来检验xml文件,找不到相应的xsd文件的时候就会报错。

那么spring是如何加载xsd文件的呢?

spring是默认从本地加载xsd文件的,举个栗子:我们打开spring-context的jar包,找到spring.schemas这个文件

然后在org/springframework/context/config目录下可以找到这些xsd文件。默认加载的就是这些文件。

spring这一点细节做得比较好,把所有版本的xsd文件都放进来了,无论在spring配置文件中写哪个版本的schemaLocation,都能找得到。如果不写schemaLocation的版本号是,默认是当前版本。

解决办法:

检查spring配置文件里有没有配相应的schema配置,补充上就可以了

关于spring”通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明“的错误的更多相关文章

  1. 通配符的匹配很全面, 但无法找到元素 'context:property-placeholder' 的声明。

    在Spring相应包导入正确的前提下,出现这个异常,是因为我们在引入命名空间的时候,没有正确引入它的DTD解析文件,以上面的context为例,解决办法如下: 在引入 xmlns:context=&q ...

  2. 通配符的匹配很全面, 但无法找到元素 'context:property-placeholder'

    解决方案就是如下: xmlns:context="http://www.springframework.org/schema/context" 同时在xsi:schemaLocat ...

  3. 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。

    错误原因: xml文件中,本来是要配置成下面这样的: http://www.springframework.org/schema/context http://www.springframework. ...

  4. Spring:通配符的匹配很全面, 但无法找到元素 XXXXX' 的声明

    问题:配置Spring的时候容易发生如题的这样一个经常性的错误,错误如下(以context为例) org.springframework.beans.factory.xml.XmlBeanDefini ...

  5. nested exception is org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 56; cvc-complex-type.2.4.c通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明

    严重: Exception sending context initialized event to listener instance of class org.springframework.we ...

  6. 通配符的匹配很全面, 但无法找到元素 'cache:advice' 的声明

    EB-INF\classes\spring-jdbc.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineN ...

  7. idea调试SpringMvc, 出现:”通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明“错误的解决方法

    调试json格式输出,出现以下错误: HTTP Status 500 - Servlet.init() for servlet HelloDispatcher threw exception   ty ...

  8. dubbo 常见错误 通配符的匹配很全面, 但无法找到元素 'dubbo:application' java.lang.reflect.MalformedParameterizedTypeException 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明。 Unsupported major.minor version 52.0 (unable to l

    dubbo 常见错误 1. Caused by: java.lang.reflect.MalformedParameterizedTypeException 启动时报错,原因是dubbo 依赖 spr ...

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

    转自:http://blog.csdn.net/tolcf/article/details/50845483 报错信息:通配符的匹配很全面, 但无法找到元素 'mvc:annotation-drive ...

随机推荐

  1. 一个kafka异常

    卡夫卡经常超时,而且超时时间固定为三分钟,因为时间长度固定,所以逆推一下,发现现有的配置里面有个session的timeout是三分钟,但是其实后来验证发现真是的原因是connect timeout, ...

  2. sourcetree 分支的创建合并

    sourcetree 分支的创建合并,提交 https://blog.csdn.net/qq_34975710/article/details/74469068 sourcetree测试版本的配置忽略 ...

  3. linux启动自动挂载分区和/etc/fstab简单修复

    让后加的分区能够启动时自动挂载,需要把配置写入文件 /etc/fstab vi /etc/fstab UUID=3f5859e0-592f-42cd-b533-570422fb85be   / ext ...

  4. Jmeter 录制浏览器https请求

    Jmeter录制脚本时,跟http脚本录制主要区别是,https录制需要添加安全证书. 一Jmeter代理服务器及证书配置. 1.打开Jmeter,右键测试计划添加线程组,右键工作台→非测试元件→ht ...

  5. Annotation之三:自定义注解示例,利用反射进行解析

    @Retention定义了该Annotation被保留的时间长短有3中RetentionPolicy.SOURCE源文件有效,RetentionPolicy.CLASS:在class文件中有效,Ret ...

  6. JavaScript笔记——基础知识(二)

    Function类型 函数function不需要返回类型(不是没有返回值),参数也不需要指定类型,更为特殊的是函数竟然是个类,可以通过new出来 var box= new Function('num1 ...

  7. 【转】Context.getExternalFilesDir()和Context.getExternalCacheDir()方法

    应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的.大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中.这样当该应用被卸载后,这些数据还 ...

  8. oracle删除多个分区表

    declare v_date date; v_part_name varchar(); begin v_date := date'2015-2-4'; while v_date >= date' ...

  9. 密码生成工具Cupp

    Cupp可根据已知信息生成相应的字典,用来爆破很有帮助 首先先安装一下cupp 命令:apt-get install cupp 参数说明: -v查看cupp版本号 -h 查看参数列表 -l 从gith ...

  10. python与桶排序

    问题提出: 将以下数据: 6, 8, 2, 3, 4, 0, 9, 1, 5,1 按从小到达排列. 桶排序原理: 桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出现 ...