java - 找不到 Spring MVC 带注释的 Controller

标签 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 名称是从它派生的)。

奇怪的是,如果我将 Controller 命名为与 bean 名称相同的名称(例如indexController),一切都很好! (显然我不希望我的类有小写首字母!!)

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

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

J爱

最佳答案

此错误通常意味着您的类尚未捆绑在 war 文件中。解压 war 文件并检查您的类是否正确包含。<​​/p>

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

关于java - 找不到 Spring MVC 带注释的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431194/

相关文章:

java - 尝试访问类时出现空指针异常

java - DynamoDB自动附加到多个列表

spring - 在 SpringExtension 之前执行扩展

java - 如何使用 @responsebody 在 JSON 返回值中添加字段名称?

java - 在 Spring MVC 中扩展带注释的 Controller

java - 是否可以编写逻辑形式 "then if"的条件?

java - 如何解析从客户端收到的xml结果

java - Spring JPA @NotNull 和 @JsonIgnore

java - Apache Velocity 禁用模板和资源缓存

java - Spring MVC 保存后恢复页面状态