Reputation: 33
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
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
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