39 votes

Pas d'adaptateur pour exception de gestionnaire

Je développe une application Web en utilisant le framework spring mvc. Je veux les annotations et les mappages d'URL basés sur beanName.

J'ai les configurations suivantes dans mon fichier de contexte

 <mvc:annotation-driven />

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
 

Mes contrôleurs basés sur des annotations fonctionnent correctement, mais le mappage d'URL basé sur beanNamed lève l'exception "Aucun adaptateur pour le gestionnaire".

Qu'est-ce que je fais mal ici?

Je vous remercie

80voto

Arun P Johny Points 151748

Par défaut, le spring mvc définit 3 types de demande de gestionnaire de cartes, ils sont

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter

Si vous n'avez pas besoin de les définir dans votre fichier de contexte, mais si vous avez défini au moins un gestionnaire d'adaptateur dans votre contexte, les fichiers, le printemps ne va pas créer de la valeur par défaut des adaptateurs.

Dans votre configuraion vous utilisez <mvc:annotation-driven />, selon ce printemps de la documentation ce qui fera que le contexte pour définir les deux DefaultAnnotationHandlerMapping et AnnotationMethodHandlerAdapter. Puisque nous sommes de la création de l' AnnotationMethodHandlerAdapter dans notre contexte de définition de printemps ne va pas créer les deux autres handlerAdapters. C'est pourquoi vous obtenez ladite exception.

Le beanNameUrlMapping besoins de la handlerAdapter SimpleControllerHandlerAdapter.

Pour résoudre cette exception, vous pouvez simplement créer un nouveau bean de type "SimpleControllerHandlerAdapter" dans votre contexte.

<bean
    class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
</bean>

1voto

Ankit Points 11

La même chose m’est arrivée lorsque j’essayais d’intégrer le printemps MVC 2.5 à l’écoulement printanier. Pour webflow, j'ai indiqué FlowHandlerdAdapter dans le fichier de configuration, mais aucun pour MVC. Ainsi, comme indiqué ci-dessus, nous devons définir un BEAN de type simplecontrollerhandleradapter dans ce cas, ce qui résoudra le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X