2013-03-15 5 views
0

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

Répondre

2

Cette erreur signifie généralement que votre classe n'a pas été regroupée dans le fichier war. Décompressez le fichier war et vérifiez que votre classe est correctement incluse.

Je suppose que vous avez réussi à regrouper "indexController.class" à un moment donné, mais les tentatives d'empaquetage antérieures ont échoué. Vous n'avez pas indiqué comment vous empaquetez votre application, vérifiez votre configuration Maven/Ant si vous en utilisez une. Méfiez-vous du partage de répertoires de construction entre l'IDE et le script de construction, car ils peuvent parfois entrer en conflit les uns avec les autres.

+0

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

+0

Heureux d'avoir aidé! – seanhodges

-1

Je vous conseille de télécharger STS et de créer un nouveau modèle de projet Spring MVC, pour voir comment fonctionne Spring 3 MVC.

+0

Je comprends les principes utilisés avec Spring MVC ... Je demande une aide spécifique. – JLove

Questions connexes