Di default il MVC primavera definisce 3 diversi adattatori richiesta del gestore, sono
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
Quindi non c'è bisogno di avere a definirli nel file di contesto, ma se si definisce almeno un adattatore per handler nei file di contesto, spring non creerà gli adattatori predefiniti.
Nella tua configuraion si utilizza <mvc:annotation-driven />
, secondo this documentazione primavera questo farà sì che il contesto per definire sia DefaultAnnotationHandlerMapping
e AnnotationMethodHandlerAdapter
. Poiché stiamo creando AnnotationMethodHandlerAdapter
nella nostra definizione di contesto, spring non creerà gli altri due handlerAdapter. Questo è il motivo per cui stai ricevendo la suddetta eccezione.
Il beanNameUrlMapping richiede l'handlerAdapter SimpleControllerHandlerAdapter
.
Per risolvere questa eccezione, è sufficiente creare un nuovo bean di tipo "SimpleControllerHandlerAdapter" nel proprio contesto.
<bean
class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
</bean>
fonte
2010-10-09 06:57:32
questa è una semplice risposta diretta, ottima spiegazione :) –
Questo non è stato facile da trovare. Ma alla fine l'ho fatto. Ottima spiegazione Stavo aggiungendo il supporto per le annotazioni e non volevo eseguire la migrazione di tutti i controller contemporaneamente. – panther
Ha funzionato bene aggiungendo SimpleControllerHandlerAdapter. Grazie! – Ricardo