找不到Spring MVC Annotated Controller

时间:2013-03-15 11:26:01

标签: java spring spring-mvc

我有一个非常恼人的问题......我没有定义Controller处理程序映射器,因此我使用的是DefaultAnnotationHandlerMapping类。我的问题似乎与Controller bean名称映射到Controller类有关,例如。

对调度员的传入请求 - > index.htm的

使用以下Controller类:

@Controller
public class IndexController { 
    @RequestMapping(value = "/index.htm", method = RequestMethod.GET)
    public String loginForm(ModelMap model) {
        return "index";
    }  
}

应将index.htm映射到indexController bean,然后映射到IndexController类。我可以从日志中看到Spring已经使用容器注册了bean但是我收到以下错误:

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [xxx.controller.IndexController] 

我确定该类存在(因为bean名称是从它派生的)。

奇怪的是,如果我将控制器命名为与bean名称相同(例如indexController),一切都很好!! (显然我不希望我的班级有一个小写的第一个字母!!)

请注意我在dispatcher-servlet.xml中使用了以下内容:

<mvc:annotation-driven />
<context:component-scan base-package="xxx" />

JLove

2 个答案:

答案 0 :(得分:2)

此错误通常表示您的类未捆绑在war文件中。解压缩war文件并检查您的课程是否正确包含在内。

我怀疑你在某些时候成功捆绑了“indexController.class”,但之前的打包尝试失败了。您尚未说明如何打包应用程序,如果您正在使用其中一个,请检查Maven / Ant配置。注意在IDE和构建脚本之间共享构建目录,因为它们偶尔会相互冲突。

答案 1 :(得分:-1)

我建议你下载STS并创建新的Spring MVC项目模板,看看Spring 3 MVC是如何工作的。