2010-07-08 2 views
0

У меня есть существующие приложения Spring MVC, написанные в 2.5.Ошибка аннотации Spring MVC «Нет адаптера для обработчика - поддерживает ли ваш обработчик поддерживаемый интерфейс, например, контроллер?»

Я хотел использовать новый контроллер аннотации. Я несколько вижу, что он действительно гибкий и отвечает на мои другие потребности.

Моя проблема в том, что я не могу их смешивать.

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 

    <context:component-scan 
      base-package="com.test.web" /> 

    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> 
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 

    <!-- Controller Mappings Here --> 
    <bean id="homeController" class="com.test.web.HomeController"> 
     <property name="cacheSeconds" value="120" /> 
    </bean> 

    //other plain old spring mvc controller 

Когда я запустил мое приложение и нажмите на домашнюю страницу, я получаю ниже ошибки:

javax.servlet.ServletException: No adapter for handler [[email protected]]: Does your handler implement a supported interface like Controller?

Я не уверен, но я думаю, что что-то противоречат друг другу. Это довольно большие приложения Spring MVC, и я не хочу менять те модули, которые уже работали с использованием старого Spring Base Controller.

Моя цель - использовать контроллер аннотации только в моем новом улучшении.

ответ

3

Вам не нужно указывать DefaultAnnotationHandlerMapping и AnnotationMethodHandlerAdapter. Контекст имеет эти зарегистрированные по умолчанию, а также адаптеры для контроллеров старого стиля.

Когда вы объявляете их явно так, по умолчанию удаляются, и контекст будет поддерживать только те, которые вы объявляете.

+0

Hi Skaffman, Я попробовал то, что вы предложили, но я получаю 404, когда я удалил это заявление. Я уже прокомментировал контроллер в своих сопоставлениях, думая, что он автоматически определит мой @controller. \t <боб класс = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> \t \t <свойство Name = "отображения"> \t \t \t \t \t \t \t homeController -> –

+0

Я забыл упомянуть, что у меня все еще есть SimpleUrlHandlerMapping, сконфигурированный в моем файле конфигурации –

+0

У меня такая же проблема. Вы можете получить решение для этого? –

Смежные вопросы

 Смежные вопросы