Dola Chakraborty
Dola Chakraborty

Reputation: 33

spring MVC helloworld application shows CannotLoadBeanClassException

I am a novice to spring MVC.I am follwoing a tutorial from the bellow link: Spring Hello World

While running the application on tomcat server it shows following exception,I guess it is related to the controller class file path,but can't solve it:

javax.servlet.ServletException: Servlet.init() for servlet SpringMVCTutorial threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)
root cause

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [java.com.springmvctutorial.web.controller.HelloWorldController] for bean with name '/helloworld.htm' defined in ServletContext resource [/WEB-INF/SpringMVCTutorial-servlet.xml]; nested exception is java.lang.ClassNotFoundException: java.com.springmvctutorial.web.controller.HelloWorldController
    org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1266)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:581)
    org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1335)
    org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:901)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:652)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:600)

Upvotes: 2

Views: 133

Answers (2)

M Sach
M Sach

Reputation: 34424

Looks like you class file corresponding to java.com.springmvctutorial.web.controller.HelloWorldController is not under classpath.

So two things to check here ;-

1)Class file for HelloWorldController created or not.

2)If yes, folder containing i.e java.com.springmvctutorial.web.controller.HelloWorldController should be under classpath

Ideally package name should start with com.springmvctutorial.. not with java.com.. as per java convention

Upvotes: 0

Masudul
Masudul

Reputation: 21961

You put wrong class path at SpringMVCTutorial-servlet.xml. Use following path

<bean name="/helloworld.htm"
     class="com.springmvctutorial.web.controller.HelloWorldController"/>

Upvotes: 1

Related Questions