我最近更新了我们(子)项目声明的父pom文件。在所述pom文件中,我更新了" org.springframework"依赖项(spring-webmvc,spring-web ...)从版本4.0.7.RELEASE到4.1.6.RELEASE。
在儿童项目/ pom中,我使用org.springframework.data spring-data-jpa。在更新父pom文件之前,我的测试正在通过。更新后,我看到了这个错误:
Caused by: java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg/springframework/core/env/Environment;
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:81)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1426)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1416)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:179)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:149)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:103)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:510)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
然后我尝试将spring-data-jpa版本从1.7.1.RELEASE更新为1.8.0.RELEASE,但错误信息是相同的。
我已经阅读了几篇帖子,建议存在依赖/ jar冲突,但没有解释发生冲突的地方,而不是如何解决冲突。从我可以收集到的,它导致了org.springframework的变化。
答案 0 :(得分:0)
在我的案例中,跟在课程org.springframework.data.repository.config.RepositoryBeanDefinitionParser
中的一行:
public BeanDefinition parse(Element element, ParserContext parser) {
XmlReaderContext readerContext = parser.getReaderContext();
try {
Environment e = readerContext.getEnvironment();
引起的:
java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()
。
RepositoryBeanDefinitionParser与spring-data-commons
pom.xml文件的spring-data-jpa
依赖关系:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>spring-data-commons</artifactId>
<version>${springdata.commons}</version>
</dependency>
所以,当我将org.springframework.data:spring-data-jpa
依赖项升级到更高版本1.9.2.RELEASE(同时拥有4.1.0.RELEASE的spring-beans)时,我开始异常,因为我的XmlReaderContext
没有getEnvironment()
方法所需的方法RepositoryBeanDefinitionParser.parse(Element element, ParserContext parser)
。