Spring MVC注释错误“没有处理程序的适配器 - 您的处理程序是否实现了像Controller这样的支持接口?”

问题描述 投票:0回答:1

我有一个用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:没有适配器的处理程序[com.test.web.HomeController@cca07b]:你的处理程序是否实现了像Controller这样的支持接口?

我不确定,但我觉得有些事情是矛盾的。这是一个相当大的Spring MVC应用程序,我不想更改那些已经使用旧的Spring Base Controller工作的模块。

我的目标是仅在我的新增强功能上使用注释控制器。

java spring spring-mvc
1个回答
3
投票

你不需要声明DefaultAnnotationHandlerMappingAnnotationMethodHandlerAdapter。上下文默认注册了这些,以及旧式控制器的适配器。

当您明确地声明它们时,将删除默认值,并且上下文仅支持您声明的那些。

© www.soinside.com 2019 - 2024. All rights reserved.