我试图制作一个Web应用程序(不是由我编码)来运行,但是,在部署时,我遇到以下异常。
java.lang.NoSuchMethodError:org.springframework.web.context.ConfigurableWebApplicationContext.setId(Ljava / lang / String;)V
我已经检查并验证了 WEB-INF / libs 文件夹(我使用的是Spring版本3.2.0.M1)中的spring-blabla jar没有版本冲突 pom.xml 文件中的dependecies具有以下格式。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
我非常绝望,所以,作为最后的手段,我检查了一个中文网站并在* web.xml *文件中试验了以下监听器
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
现有的一个:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
当我运行应用程序时,我不再收到先前的异常,而是另一个异常,
上下文初始化失败 org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.springframework.web.context.support.XmlWebApplicationContext]:构造函数抛出异常;嵌套异常是java.lang.NoSuchMethodError:org.springframework.jndi.JndiLocatorDelegate.isDefaultJndiEnvironmentAvailable()Z
我真的不知道该怎么做......
答案 0 :(得分:8)
你的运行时很可能正在阅读Spring 2.0而不是3.2。看一下Spring 2 ConfigurableWebApplicationContext,它没有setId(String)
方法。
我会通过检查jar / war文件来开始调试问题,看看是否有任何重复版本的Spring。还要检查Web容器类路径(例如:tomcat lib文件夹)。如果那里有一个Spring 2罐子,可能会造成混乱