1

Я создаю простой webapp, используя tomcat 6, spring 2.5.6 и maven.java.lang.ClassNotFoundException: org.springframework.ui.ModelMap

Проблема заключается в том, когда я загрузке кота, я получаю следующие ошибки:

SEVERE: StandardWrapper.Throwable 
java.lang.NoClassDefFoundError: org/springframework/ui/ModelMap 
... 
Caused by: java.lang.ClassNotFoundException: org.springframework.ui.ModelMap 

ModelMap класс существует в spring-2.5.6.jar и spring-context-2.5.6.jar, у меня также есть некоторые другие весенние банки. Все они корректно внедряются в tomcat, когда я проверяю приложение WEB-INF (развернутое на tomcat), я нашел все эти банки там!

У меня есть только один @Controller, который имеет метод @RequestMapping("/home.htm") showForm(ModelMap model). Мои ApplicationContext довольно просто:

<?xml version="1.0" encoding="utf-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-2.5.xsd 
       http://www.directwebremoting.org/schema/spring-dwr 
       http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd" 
    default-autowire="byName"> 

<context:component-scan base-package="org.myapp"/> 
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> 
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> 
     <property name="prefix" value="/WEB-INF/view/"></property> 
     <property name="suffix" value=".jsp"></property> 
    </bean> 
</beans> 
+0

К сожалению, ApplicationContext не был вставлен правильно, here're недостающими бобов: <контекст: компонент сканирования базового пакета = "org.islamweb" /> класса \t <боба = "org.springframework.web .servlet.mvc.annotation.DefaultAnnotationHandlerMapping "/> \t user256872

+1

Вы можете использовать ссылку" edit "для обновления вопроса. – BalusC

+0

Использование весенней банки со всем, что в ней обескуражено, и на самом деле недоступно с выпуском 3.0.x. Поэтому я рекомендую вам явно указать компоненты весны, которые вам нужны в ваших зависимостях maven. (Как правило, web-mvc и одна из библиотек доступа к данным. Ядро, бобы, контекст, сеть включены в качестве транзитивных зависимостей web-mvc, но не вредно также включать их явно.) – mdma

ответ

2

spring-2.5.6.jar является JAR, который содержит все пружинного каркаса. Если вы используете этот JAR, вы не должны использовать какой-либо другой JAR, например spring-context-2.5.6.jar. Эти меньшие JAR-файлы существуют, если вы хотите выбрать и выбрать нужные вам весны весны.

Возможно, что загрузчик классов запутался между дублирующимися копиями классов между JAR. Выньте все весенние JAR, за исключением spring-2.5.6.jar, и посмотрите, не изменилось ли это.