Spring中的applicationContext.xml配置错误

今天我在学习Spring框架的时候,在配置applicationContext.xml中,运行程序出现以下的错误;


org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is java.lang.IllegalStateException: Context namespace element 'annotation-config' and its parser class [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] are only available on JDK 1.5 and higher
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at spring_ioc_05_di_annotationTest.AnnotationTest.TestPerson(AnnotationTest.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalStateException: Context namespace element 'annotation-config' and its parser class [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] are only available on JDK 1.5 and higher
at org.springframework.context.config.ContextNamespaceHandler$1.parse(ContextNamespaceHandler.java:65)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1255)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1245)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
... 37 more

造成这种原因一般情况是你使用的是Spring2.5版本,而且你使用的jdk版本是1.8。所以,这就造成了上面的这种错误。


我的解决方法是:

第一种:降低jdk版本,可以使用1.7版本


第二种方法(推荐):使用更高版本的spring.所以,将原来的spring2.5jar包删除,重新加载新的spring jar包。比如,我使用的是spring3.2版本;然后在重新修改一下applicationContext.xml配置就可以了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当应用程序尝试读取或加载applicationcontext.xml文件时,出现了错误applicationcontext.xmlSpring框架配置应用程序上下文的文件之一,通常位于src/main/resources目录下。 要解决这个问题,需要仔细检查错误信息,确定哪里出了问题。一些可能的原因包括: 1. 文件路径错误:请确保applicationcontext.xml文件在正确的位置,并且文件名和路径都正确。 2. 文件内容错误:请确保applicationcontext.xml文件的格式正确,并且其配置项和标签都正确。如果有错误,可以尝试从备份还原文件或从头开始创建一个新文件。 3. 依赖问题:如果应用程序依赖于其他库或组件,请确保它们已正确安装和配置,并且在应用程序正确引用。 一旦确定了问题所在,可以采取相应的措施来解决它。如果问题仍然存在,请尝试查看更详细的错误信息或寻求帮助。 ### 回答2: ApplicationContext.xml文件在Spring框架是非常重要的一个文件,用于配置Bean的定义,以及Bean之间的关系、依赖关系等。如果ApplicationContext.xml报错,可能会导致应用无法正常启动或者运行出错。 通常会出现以下几类报错: 1. 格式错误 一些常见的格式错误包括标签未闭合、属性值格式不正确、xml语法错误等。这些错误通常很容易被发现和修复,只需要检查一下文件格式是否正确即可。 2. 依赖注入错误ApplicationContext.xml进行依赖注入时,可能会出现Bean的id或属性名拼写错误、注入方式不正确等问题。这些错误主要是在应用启动阶段出现,可以通过日志或debug模式来排查。 3. 类型转换错误 有时候,在进行依赖注入时,Bean的属性类型与注入的实例类型不匹配,会导致类型转换异常。这种错误比较难以发现和调试,因此在配置时应该特别注意类型匹配和转换问题。 4. 重复定义错误ApplicationContext.xml,如果定义了多个相同的Bean id,或者重复定义了同一个Bean的多个实例,都会导致应用启动失败。这种错误需要非常谨慎来避免。 总之,解决ApplicationContext.xml报错需要仔细检查配置文件的每一个元素和属性,排查各种可能的问题,并保证配置文件的正确性和一致性。同时,也需要注意Spring框架版本之间的兼容性,避免使用过时或不兼容的配置方式。 ### 回答3: applicationcontext.xmlSpring框架配置文件,它用于定义Spring容器的bean以及它们之间的关系。如果出现了applicationcontext.xml报错,则说明在配置文件存在一些错误或者不完善的地方,导致Spring容器无法正常启动和运行。 常见的applicationcontext.xml报错包括以下几种: 1. XML语法错误:在applicationcontext.xml常常会出现XML语法错误,如标签未闭合、属性未正确设置等,这些错误会导致应用程序启动时解析XML失败,无法正常启动。 2. 注册bean错误:在配置文件注册bean时出现错误,例如未指定bean的class属性、指定了重复的bean id等。这些错误同样会导致应用程序无法正常启动。 3. 依赖注入错误:在XML配置文件声明bean时,可能会出现属性注入错误,如注入的属性不存在、类型不匹配等。这些错误会导致应用程序运行时出现异常或者无法正常运行。 4. Spring版本不兼容:由于不同版本的Spring框架存在类、标签、属性等的差异,因此在使用不兼容的Spring版本时可能会导致applicationcontext.xml报错。 对于applicationcontext.xml报错,可以采取以下方法进行解决: 1. 检查XML语法:使用XML工具或者IDE自带的XML校验功能,检查配置文件是否存在语法错误。 2. 检查bean注册:对照配置文件注册的bean与程序使用的bean是否一致,检查是否存在重复的bean id等问题。 3. 检查依赖注入:对照配置文件声明的bean和类的属性,检查是否存在注入错误。 4. 检查Spring版本:查看程序依赖的Spring版本是否与配置文件的版本一致,若不一致,则需要进行版本升级或者降级。 总之,解决applicationcontext.xml报错需要对Spring框架的原理和配置文件的语法有深入的理解和熟悉。需要逐个排查,并仔细查看错误消息以确定具体的问题所在。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值