org.springframework.web.context.ConfigurableWebApplicationContext.setId(Ljava / lang / String;)和连锁反应

时间:2013-07-11 12:37:39

标签: java spring maven

我试图制作一个Web应用程序(不是由我编码)来运行,但是,在部署时,我遇到以下异常。

  1.   

    java.lang.NoSuchMethodError:org.springframework.web.context.ConfigurableWebApplicationContext.setId(Ljava / lang / String;)V

  2. 我已经检查并验证了 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

    我真的不知道该怎么做......

1 个答案:

答案 0 :(得分:8)

你的运行时很可能正在阅读Spring 2.0而不是3.2。看一下Spring 2 ConfigurableWebApplicationContext,它没有setId(String)方法。

我会通过检查jar / war文件来开始调试问题,看看是否有任何重复版本的Spring。还要检查Web容器类路径(例如:tomcat lib文件夹)。如果那里有一个Spring 2罐子,可能会造成混乱