当前位置: 首页 > 知识库问答 >
问题:

找不到默认构造函数;嵌套异常是Spring MVC中的java.lang.NosuchMethodException?

柳威
2023-03-14

我正在与Spring MVC控制器项目。下面是我的控制器,我声明了一个构造函数,我专门用于测试目的。

@Controller
public class TestController {

    private static KeeperClient testClient = null;

    static {

    // some code here

    }

    /**
     * Added specifically for unit testing purpose.
     * 
     * @param testClient
     */
    public TestController(KeeperClient testClient) {
        TestController.testClient = testClient;
    }

    // some method here

}
No default constructor found; nested exception is java.lang.NoSuchMethodException:
    public TestController() {

    }

共有1个答案

邓兴为
2023-03-14

Spring无法实例化您的TestController,因为它唯一的构造函数需要参数。您可以添加一个no-arg构造函数,或者向构造函数添加@autowired注释:

@Autowired
public TestController(KeeperClient testClient) {
    TestController.testClient = testClient;
}

在本例中,您显式地告诉Spring在应用程序上下文中搜索KeeperClient bean,并在实例化TestController时注入它。

 类似资料:
  • 问题内容: 我正在使用Spring MVC控制器项目。下面是我的Controller,我声明了一个构造函数,该构造函数专门用于测试。 每当我启动服务器时,都会遇到以下异常- 但是,如果我删除构造函数,那么它将正常工作而不会出现任何问题。我在这里做什么错? 但是,如果我添加此默认构造函数,则它将开始正常工作- 问题答案: 如果要创建自己的构造函数,则必须定义无参数或默认构造函数。 您可以了解为什么需

  • 因此,我有了类、、和。由于类有很多setter和getter,所以我决定将代码放在pastebin中: LogBookEntry 驱动程序 数据库 汽车 因此,正如您在数据库中所看到的,我有两个函数来加载和保存XML数据。 如您所见,类的日期不会保存到XML文件中。这就是为什么我在加载xml文件时会出现以下错误的原因: Okt 22,2017 3:36:33 PM com.sun.xml.inte

  • Spring靴和jpa给出了错误 项目的github链接https://github.com/dishankgoyal/springsBoot/tree/master/faculty_project

  • 我在sts中创建了一个maven项目,并试图为该项目创建一个war文件。我还为我的类配置了querydsl。当我运行maven install时,一个类给我一个错误响应。 错误:创建在文件[C:\ Users \ Vince \ Documents \ workspace-spring-tool-suite-4-4 . 0 . 1 . release \ project \ target \ te

  • 问题内容: 我知道我在这里问一些严重的101问题… 我有一些课,还有一个延伸课。在我有一个构造函数,它接受一组参数,并对其字段进行设置。派生类(例如)通常不需要进行修改。现在我的IDE给我 “ Foo中没有默认的构造函数” 。从一点点谷歌搜索,这似乎是因为“构造函数没有继承”。因此,一切都很好,但是我现在如何使它工作而不在每个派生类中复制此构造函数?我假设有一个更合理的方法? 问题答案: 使用构造

  • 如果我构造一个空的使用默认的构造函数(和默认的分配器),它可以抛出一个异常吗? 通常,为容器的元素分配空间会引发异常(这将是一个<code>std::bad_alloc</code>)。但是<code>std::vector</code>的默认构造函数不需要分配任何这样的空间;它可以在第一次插入或分配时惰性地分配一些空间。但是C标准是否要求它不抛出异常(意味着延迟分配,或者捕获<code>std: