NoSuchMethodError:org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg / springframework / core / env / Environment; 随着zkoss
我正面临以下错误,
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:73) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1423) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1413) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:239) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:196) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:181) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452) at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:663) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:629) at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:677) at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:548) at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:489) at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) at javax.servlet.GenericServlet.init(GenericServlet.java:160) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5198) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5481) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
我从谷歌搜索中了解到它与依赖问题有关。 所以这是我的pom.xml
4.0.0 TempApp com.zbc.tempapp 1.0-SNAPSHOT war TempApp ZK CE ZK CE Repository http://mavensync.zkoss.org/maven2 1.0.1.Final 4.3.6.Final 4.0.4.Final 5.1.2.Final 4.1.2.RELEASE 2.0 1.4.3.RELEASE 3.2.1 4.0 1.3.2 2.2.1 7.0.3 3.1.1 4.11 2.4 1.8 1.8 3.0 UTF-8 org.apache.logging.log4j log4j-api ${log4j2Version} org.apache.logging.log4j log4j-core ${log4j2Version} org.hibernate.javax.persistence hibernate-jpa-2.0-api ${jpa.version} org.hibernate hibernate-core ${hibernate.version} org.hibernate hibernate-entitymanager ${hibernate.version} org.hibernate.common hibernate-commons-annotations ${hibernate.commons.annotation.version} org.hibernate hibernate-validator ${hibernate.validator.version} org.springframework.data spring-data-jpa ${springDataJpaVersion} org.springframework spring-context ${springVersion} org.springframework spring-web ${springVersion} org.springframework spring-webmvc ${springVersion} org.springframework spring-test ${springVersion} junit junit ${junit.version} org.quartz-scheduler quartz ${quartzVersion} org.zkoss.zk zkplus ${zkVersion} org.zkoss.zk zhtml ${zkVersion} org.zkoss.zk zkbind ${zkVersion} org.zkoss.zk zul ${zkVersion} org.slf4j slf4j-jdk14 <!-- org.zkoss.zk zkspring-core 3.1.1 ch.qos.logback logback-classic --> <!-- org.zkoss.zk zkspring-webflow 3.1.1 --> <!-- org.zkoss.zk zkspring-security 3.1.1 --> org.apache.commons commons-email ${apacheCommonsEmail} org.apache.commons commons-lang3 ${apacheCommonsLangVersion} org.apache.commons commons-collections4 ${apacheCommonsCollection} org.apache.maven.plugins maven-war-plugin ${plugin.maven.war} true true ${BUILD_TAG} org.apache.maven.plugins maven-compiler-plugin ${plugin.maven.compiler} ${maven.compiler.source} ${maven.compiler.target} ${project.build.sourceEncoding} true true true true org.apache.maven.plugins maven-surefire-plugin 2.12.4 true org.apache.maven.plugins maven-surefire-plugin true org.apache.maven.plugins maven-compiler-plugin ${maven.compiler.source} ${maven.compiler.target} ${project.build.sourceEncoding} true true true true
谢谢。
我遇到了和你一样的问题。 两个小时的发现是错误的…在找到你的问题后,发现这可能是一个依赖性问题。
是的,我解决了这个问题只是添加了spring bean依赖
org.springframework spring-beans 4.1.6.RELEASE
这对我来说是弹簧jar和弹簧数据之间的依赖兼容性问题。
错误之前的版本(没有错误):
4.1.0.RELEASE 1.6.1.RELEASE
将spring数据更新为1.10.2.RELEASE后,错误追加,通过将spring版本升级到4.3.2.RELEASE解决:
4.3.2.RELEASE 1.10.2.RELEASE
为确保使用正确的spring版本,可以跳过spring依赖项的maven声明,并仅保留spring数据依赖项。 或者您可以在maven存储库中检查spring数据版本使用的spring版本并进行更新。
if using spring 3.17 use org.springframework.data spring-data-jpa 1.6.6.RELEASE
这个错误非常清楚,该类
org.springframework.beans.factory.xml.XmlReaderContext
不包含方法getEnvironment(java方法表示法)
.getEnvironment()Lorg/springframework/core/env/Environment
如果你查看你的应用程序中包含的Spring bean库,并在类上运行javap -l,你可能会注意到这个方法确实不存在…
**javap.exe c:\XmlReaderContext.class** -l Compiled from "XmlReaderContext.java" public class org.springframework.beans.factory.xml.XmlReaderContext extends org.springframework.beans.factory.parsing.ReaderContext { public org.springframework.beans.factory.xml.XmlReaderContext(org.springframework.core.io.Resource, org.springframework.beans.factory.parsing.ProblemReporter, org.springframework.beans.factory.par aderEventListener, org.springframework.beans.factory.parsing.SourceExtractor, org.springframework.beans.factory.xml.XmlBeanDefinitionReader, org.springframework.beans.factory.xml.NamespaceHandlerRes public final org.springframework.beans.factory.xml.XmlBeanDefinitionReader getReader(); public final org.springframework.beans.factory.support.BeanDefinitionRegistry getRegistry(); public final org.springframework.core.io.ResourceLoader getResourceLoader(); public final java.lang.ClassLoader getBeanClassLoader(); public final org.springframework.beans.factory.xml.NamespaceHandlerResolver getNamespaceHandlerResolver(); public java.lang.String generateBeanName(org.springframework.beans.factory.config.BeanDefinition); public java.lang.String registerWithGeneratedName(org.springframework.beans.factory.config.BeanDefinition); public org.w3c.dom.Document readDocumentFromString(java.lang.String); }
只需升级到包含此Spring bean依赖关系> 4.3.2的方法的更高版本
问候
SAHI
如果在启动/部署Web应用程序期间在服务器上抛出此错误,则
-
在项目org.springframework.beans.factory.xml.XmlReaderContext中找到包含所提及类的jar
-
尝试在公共lib文件夹中的服务器上找到相同的jar。
-
设置相同版本的jar或将提供的范围放在pom.xml文件中