NoSuchMethodError почти всегда вызывается из-за использования несовместимых версий библиотек. В этом случае вы, вероятно, используете другую версию библиотек Spring. Например, spring-web-3.1.0.jar и spring-context-3.0.x.jar . Поэтому попробуйте обновить все банки Spring до последней версии.
Если вы сообщите нам, какие версии вы используете, возможно, мы сможем вам помочь больше.
РЕДАКТИРОВАТЬ: Зависимости Spring в pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
...
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
</dependencies>
EDIT:
Хорошо, что это NoSuchMethodError сообщает нам, что ваше приложение выполняет StandardServletEnvironment , которое считает , что JndiLocatorDelegate имеет метод с именем isDefaultJndiEnvironmentAvailable () , но метод не существует, когда его фактически вызывает. Но этот метод существует в org.springframewor.context-3.1.1.jar , как вы можете увидеть здесь (версия 3.1.0) .
Итак, проблема может заключаться в нескольких вещах:
В пути к классам имеется более одного JndiLocatorDelegate . Это возможно, если вы используете другую библиотеку как metrics.collector . В Eclipse вы можете нажать Ctrl + Shift + T и набрать JndiLocatorDelegate , чтобы быть уверенным, что в проекте найден ТОЛЬКО ОДИН ОДИН названный класс, подобный этому, и посмотреть, содержит ли этот класс isDefaultJndiEnvironmentAvailable () метод.
По какой-то странной причине вы не выполняете свой текущий код. Попробуйте очистить проект, временные папки и рабочий каталог Tomcat.
Если это вам не поможет, пожалуйста, дайте нам список всех банок, включенных в вашу войну.