Reputation: 341
I recently updated a parent pom file which our (child) projects declare. In said pom file, I updated "org.springframework" dependencies (spring-webmvc, spring-web ...) from version 4.0.7.RELEASE to 4.1.6.RELEASE.
In a child project/pom, I'm using org.springframework.data spring-data-jpa. Before the update to the parent pom file, my tests were passing. After the update, I'm seeing this error:
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)
I then tried to update the spring-data-jpa version from 1.7.1.RELEASE to 1.8.0.RELEASE but the error message is the same.
I have read several posts suggesting that there is a dependency/jar conflict but no explanation as to WHERE this conflict is occurring not how to resolve it. From what I can gather, its the changes in org.springframework that is causing this.
Upvotes: 1
Views: 2966
Reputation: 1
In my case following line in class org.springframework.data.repository.config.RepositoryBeanDefinitionParser
:
public BeanDefinition parse(Element element, ParserContext parser) {
XmlReaderContext readerContext = parser.getReaderContext();
try {
Environment e = readerContext.getEnvironment();
caused:
java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()
.
RepositoryBeanDefinitionParser is in spring-data-commons
dependency of spring-data-jpa
pom.xml file:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>spring-data-commons</artifactId>
<version>${springdata.commons}</version>
</dependency>
So, when I upgraded my org.springframework.data:spring-data-jpa
dependency to higher version 1.9.2.RELEASE (while having spring-beans of 4.1.0.RELEASE), I started to get exception, because my XmlReaderContext
didn't have method getEnvironment()
required by RepositoryBeanDefinitionParser.parse(Element element, ParserContext parser)
method.
Upvotes: 0