web-dev-qa-db-fra.com

La configuration DispatcherServlet doit inclure un HandlerAdapter qui prend en charge ce gestionnaire.

Je souhaitais utiliser le mappage d'annotation et le mappage xml dans Spring MVC. Mon application-context.xml comme suit:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="personal/account/history">accountHistoryController</prop>
            </props>
        </property>
    </bean>

    <bean id="accountHistoryController" class="com.fg.banking.ib.controller.AccountHistoryController" />

    <bean
        class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
    <context:annotation-config />
    <mvc:annotation-driven />
    <context:component-scan base-package="com.fg.banking.ib.controller, com.fg.banking.ib.helper, com.fg.banking.corporate.controller" />

Je reçois le message d'erreur suivant lorsque j'essaie d'accéder à l'URL. J'ai configuré SimpleControllerHandlerAdapter comme ci-dessus.

javax.servlet.ServletException: No adapter for handler 
[com.fg.banking.ib.controller.AccountHistoryController@218531e6]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.Java:1128)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.Java:903)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.Java:856)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.Java:936)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.Java:827)

Que faire?

8
Mugu

J'ai résolu le problème. J'ai oublié d'ajouter l'annotation @Controller dans la classe du contrôleur. Nous pouvons donc utiliser les deux méthodes (mappage d'annotation et mappage XML) ensemble dans une application.

3
Mugu

Assurez-vous que vous avez implémenté Controller dans vos classes de contrôleur et surchargé la méthode handleRequest.

1
Majid

Essayez d’ajouter ce qui suit en tant que mappeur de gestionnaires (a travaillé pour moi):

<bean id="HandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
0
Subhranil Sengupta