J'ai un problème vraiment ennuyeux ... Je n'ai pas défini un mappeur de gestionnaire de contrôleur et donc j'utilise la classe DefaultAnnotationHandlerMapping
. Mon problème semble avoir quelque chose à voir avec le mappage du nom de bean Controller à la classe Controller par exemple.Contrôleur annoté MVC de printemps non trouvé
requête entrante au répartiteur -> index.htm
Avec la classe suivante:
@Controller
public class IndexController {
@RequestMapping(value = "/index.htm", method = RequestMethod.GET)
public String loginForm(ModelMap model) {
return "index";
}
}
Si la carte index.htm haricots IndexController puis à la classe IndexController. Je peux voir dans les journaux que le printemps a enregistré le haricot avec le conteneur mais je reçois l'erreur suivante:
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [xxx.controller.IndexController]
Je sais avec certitude que la classe existe (parce que le nom de haricot est dérivé de celui-ci).
La chose étrange est que si je nomme mon contrôleur le même que le nom du bean (par exemple indexController) tout va bien !! (Il est évident que je ne veux pas que mes classes pour avoir une minuscule première lettre !!)
Juste à noter que je l'ai utilisé ce qui suit dans mon répartiteur-servlet.xml:
<mvc:annotation-driven />
<context:component-scan base-package="xxx" />
JLove
Merci ... Je crois que le problème était lié au déploiement à chaud utilisé par Netbeans. Parce que j'ai seulement changé le cas du nom de la classe, je pense qu'il ne croyait pas que le fichier avait changé. J'ai nettoyé mon projet et re-déployé et tout va bien !! – JLove
Heureux d'avoir aidé! – seanhodges