takemylemons
takemylemons

Reputation: 65

Spring MVC suddenly class Not found DispatcherServlet

my WebApp was working and everything was fine until i tried to implement some fileupload. But it didnt worked so i just returned everything to the previous state. But since then its not working. My Stacktrace:

Feb 11, 2014 4:11:35 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\java\jdk1.7.0_25\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files\Intel\DMIX;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\java\SlikSvn\bin;C:\java\apache-maven-3.0.5\bin;C:\java\apache-ant-1.8.4\bin;C:\java\SlikSvn\bin;C:\java\jdk1.7.0_25\bin;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files\Intel\DMIX;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\java\SlikSvn\bin;C:\Python27\Scripts;C:\Program Files (x86)\Google\google_appengine\;.
Feb 11, 2014 4:11:35 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:springproject' did not find a matching property.
Feb 11, 2014 4:11:36 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Feb 11, 2014 4:11:36 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 521 ms
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet ds as unavailable
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.ApplicationContext log
SEVERE: Error loading WebappClassLoader
  context: /springproject
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@139231a9
 org.springframework.web.servlet.DispatcherServlet
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Feb 11, 2014 4:11:36 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /springproject threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Feb 11, 2014 4:11:36 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Feb 11, 2014 4:11:36 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Feb 11, 2014 4:11:36 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/13  config=null
Feb 11, 2014 4:11:36 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 672 ms
Feb 11, 2014 4:11:42 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet ds is currently unavailable
Feb 11, 2014 4:11:43 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet ds is currently unavailable
Feb 11, 2014 4:11:44 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet ds is currently unavailable

my Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springproject</groupId>
<artifactId>springproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>


<dependencies>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.0.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>

    <!-- Spring JDBC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.0.0.RELEASE</version>
    </dependency>
    <!-- H2 Driver -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.2.140</version>
    </dependency>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20070829</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.9</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

</dependencies>

my Web.xml:

<?xml version="1.0" encoding="UTF-8"?>

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4">

<display-name>springproject</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/Application-context.xml</param-value>
</context-param>


<!-- Handles all requests into the application -->
<servlet>
    <servlet-name>ds</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/servlets/servlet-context.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

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

i tried to clean, republish, update trough maven, delete and restore from backup but it still wont work, please help.

Upvotes: 4

Views: 19325

Answers (9)

Apoorv Bedmutha
Apoorv Bedmutha

Reputation: 89

I know this is an old question but in case none of the above answers works, A simple way to solve this is to create a new maven project with the archetype "maven-archetype-webapp" and after creation just copy your src files(POJOs,pom.xml, servlets, JSPs etc) into this project. This worked for me.

Upvotes: 1

TMN
TMN

Reputation: 3070

I fixed this in IntelliJ (2020.3) by going to File -> Invalidate Caches / Restart. Once it re-launched I was able to build and run my WAR file without problems.

Upvotes: 0

Deepanshu Ganotra
Deepanshu Ganotra

Reputation: 1

under servers tab-> click Clean / Clean Tomcat work directory. Also under expand server, right click on deployed application on the server and click "clean module work directory" and restart the server. This resolved my issue of "Dispatcher Servlet class not found". Thank you.

Upvotes: 0

Abhishek raut
Abhishek raut

Reputation: 309

I any of you face DispatcherServlet.class not found exceptio,follow these steps:

  1. You are facing this error because your tomcat version is old (below 6.0) and/or jar files are not placed inside WEB-INF/lib. So build a new (fully blank) dynamic web project. Create the project files (I am talking only the files you create.. i.e. controllers,jsps,htmls,XMLs)
  2. Delete the tomcat server if it is below version 6.0 (Mine was 5.5 and I was facing the same error and then downloaded 6.0) and to delete, go to servers tab which you will find beside 'Console' tab. Delete the server there and then right click on your project, go to configure-> Build Path -> Libraries tab.. 'Remove' the server from there as well..Then build-clean and Refresh the project.
  3. Now go to your browser , download apache tomcat 6.0 version. Paste this downloaded folder in any drive and any folder you want.
  4. Now go back to your IDE, copy the jar files and paste them in WEB-INF/lib folder (DO NOT DO CONFIGURE BUILD-PATH AT ALL because classes like dipatcher servelet will be invoked from WEB-INF/lib folder dynamically by default ..So go to your drive, Copy all jars. and then come back to your IDE..go to your project, paste them inside WEB-INF/lib. Then bulid-clean and Refresh the project. 5.Right click on your project, Run As Run on server. In the popup window, you will see the dropdown for server selection, change to "None" there( This is very important). Click next,then it will ask you to browse to a server folder.SO browse to your downloaded folder, select it press finish. Bingo.Its done.

Upvotes: 0

takemylemons
takemylemons

Reputation: 65

Ok Guys i could solve this strange bug, the problem was the tomcat Server i created a new one and then added the Project. and now everything works fine, thank you for your help.

Upvotes: 0

mhmpl
mhmpl

Reputation: 1043

Did you checked if the names and paths of your configuration files are correct? Application-context.xml and servlet-context.xml.

You said you tried to implement a file upload functionallity. It seems that it broke something. You should try to revert to a version prior to the implementation and check if your webapp works fine then.

Upvotes: 0

M Rajoy
M Rajoy

Reputation: 4074

If you're using Eclipse, right click on the project, go to Properties, then on the Deployment Assembly click on Add.. -> Java Build Path -> Maven Dependencies. Click Ok, Clean your project and try again. See if that works.

Upvotes: 9

M Rajoy
M Rajoy

Reputation: 4074

Also, perform a Maven Update (Right click->Maven->Update project...). I have found that sometimes my project loses its dependencies somehow and I get the same exception as you do.

Upvotes: 0

bcody
bcody

Reputation: 2548

Are you using the Eclipse Web Tools Platform with an Eclipse-managed Tomcat? If so, try cleaning up Tomcat by right-clicking on your server instance's node in the "Servers" view and selecting "Clean..." and "Clean Tomcat Work Directory". If you expand your server's node in that view, you'll see the deployed application. Right click on the application node and select "Clean Module Work Directory..."

Upvotes: 0

Related Questions