0

Here is my web.xml

Archetype Created Web Application

<servlet>
    <servlet-name>moReceiver</servlet-name>
    <servlet-class>hms.kite.samples.api.sms.MoSmsReceiver</servlet-class>
    <init-param>
        <param-name>smsReceiver</param-name>
        <param-value>com.sms.sample.MoReceiver</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>moReceiver</servlet-name>
    <url-pattern>/moReceiver</url-pattern>
</servlet-mapping>

I need to do the same thing using spring.

Here is the web.xml in my spring application

Spring MVC Application

<servlet>
    <servlet-name>moReceiver</servlet-name>
    <servlet-class>hms.kite.samples.api.sms.MoSmsReceiver</servlet-class>
    <init-param>
        <param-name>smsReceiver</param-name>
        <param-value>com.sms.sample.MoReceiver</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>moReceiver</servlet-name>
    <url-pattern>/moReceiver</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

This will give an error message.

15-Aug-2015 15:50:59.816 INFO [http-apr-8080-exec-10] hms.kite.samples.api.sms.MoSmsReceiver.initializeListeners Exception occurred while initializing listener


java.lang.ClassNotFoundException: com.sms.sample.MoReceiver
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:259)
at hms.kite.samples.api.sms.MoSmsReceiver.initializeListeners(MoSmsReceiver.java:66)
at hms.kite.samples.api.sms.MoSmsReceiver.init(MoSmsReceiver.java:50)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:283)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
  • 4
    Are you sure it's not the obvious - missing jar dependency (in other words, is it inside your war, in 'lib' subdirectory)? because the error message implies tomcat correctly understood your web.xml, tried to follow the instructions, and failed... – Pelit Mamani Aug 16 '15 at 04:58
  • Could you try defining the spring servlet at first and then your servlet. Just to check – Viswanath Lekshmanan Sep 21 '15 at 06:08
  • 3
    What's happening here? 4 upvotes for a question with the answer already in stack trace? The servlet is successfully constructed and is about to invoke its `init()` method which apparently needs to parse the init parameters as a class and tries to load the specified class from the classpath via `Class.forName()` mechanism, but simply couldn't find it. The in the exception message mentioned class is just missing in the runtime class path. This has got completely nothing to do with the way how you use the init parameters. – BalusC Sep 21 '15 at 07:51

0 Answers0