Issue
I am working with Spring MVC controller project. Below is my Controller and I have a constructor declared which I am specifically using for testing purpose.
@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
}
Whenever I am starting the server, I am getting below exception -
No default constructor found; nested exception is java.lang.NoSuchMethodException:
But if I remove TestController
constructor then it works fine without any problem. What wrong I am doing here?
But if I add this default constructor then it starts working fine -
public TestController() {
}
Solution
You have to define no-args or default constructor if you are creating your own constructor.
You can read why default or no argument constructor is required here:
Why default or no argument constructor is important in Java class?
Answered By - prashant thakre
Answer Checked By - Marie Seifert (JavaFixing Admin)