java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

ik gebruik spring 3.1.0.RELEASE, en mijn servlet-container is tomcat 7en mijn IDE is eclipse indigo
en de jar spring-webmvc-3.1.0.RELEASE.jardie de DispatcherServletbevat
bestaat in de lib-map, en toch krijg ik bij het uitvoeren van de toepassing de uitzondering:

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

geef me aan waarom ik deze uitzondering krijg en hoe ik deze kan oplossen.

EDIT: hier volgen mijn configuratiebestanden:

1- .springBeans:

<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
    <version>1</version>
    <pluginVersion><![CDATA[2.9.0.201203011806-RELEASE]]></pluginVersion>
    <configSuffixes>
        <configSuffix><![CDATA[xml]]></configSuffix>
    </configSuffixes>
    <enableImports><![CDATA[false]]></enableImports>
    <configs>
        <config>src/main/webapp/WEB-INF/checkout-servlet.xml</config>
    </configs>
    <configSets>
    </configSets>
</beansProjectDescription>

2- web.xml:

<web-app>
  <display-name>Checkout</display-name>
  <servlet>
    <servlet-name>checkout</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>checkout</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>

3- checkout-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
    <context:component-scan base-package="com.myapp"/>
    <bean id="myService" class="com.myapp.MyService"/>
</beans>

ook wanneer ik een pagina in de applicatie probeer te openen, krijg ik de uitzondering:

HTTP Status 404 - Servlet checkout is not available
type Status report
message Servlet checkout is not available
description The requested resource (Servlet checkout is not available) is not available.
Apache Tomcat/7.0.22

Antwoord 1, autoriteit 100%

U moet de “Maven Dependency” toevoegen aan de Deployment Assembly

  • klik met de rechtermuisknop op uw project en kies eigenschappen.
  • klik op Deployment Assembly.
  • klik op toevoegen
  • klik op “Java Build Path Entries”
  • selecteer Maven-afhankelijkheden”
  • klik op Voltooien.

Opnieuw opbouwen en opnieuw implementeren

Opmerking: dit is ook van toepassing op non maven-projecten.


Antwoord 2, autoriteit 13%

Twee mogelijke antwoorden:

1- Je hebt geen lentebonen en lente-context potten in je lib opgenomen.
Als u maven gebruikt (wat veel zal helpen), zijn die twee regels voldoende

<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
   <version>3.1.0.RELEASE</version>
</dependency>
<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
   <version>3.1.0.RELEASE</version>
</dependency>

2- De benodigde jars staan in je classpath, maar worden niet op Tomcat ingezet.


Antwoord 3, autoriteit 7%

Ik had hetzelfde probleem met Idea Intellij en Spring 4. Ik heb het probleem opgelost en ik wilde het antwoord met je delen.

Ik gebruik Tomcat 7 / idea intellij 13 / spring 4.

pom.xml-afhankelijkheden:

 <properties>
    <spring.version>4.0.5.RELEASE</spring.version>
  </properties>
  <dependencies>     
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
enter code here
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.2</version>
    </dependency>
        <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>1.4</version>
    </dependency>
  </dependencies>

In idee Intellij, moet je naar Bestand -> Projectinstellingen -> Artefacten.

Dan
voer hier de afbeeldingsbeschrijving in

schoon -> herbouw het project -> bouw het artefact en alles komt goed.


Antwoord 4, autoriteit 5%

Dit lost het probleem voor mij op. Het is gemakkelijk en vrij eenvoudig uitgelegd.

Stap 1

  • Klik met de rechtermuisknop op project
  • Klik op Eigenschappen

Stap 2

  • Klik op het tabblad Deployment Assembly in de
  • Klik op Toevoegen…

Stap 3

  • Klik op Java Build Path Entries

Stap 4

  • Klik op Maven Dependencies
  • Klik op de knop Voltooien

Stap 5

  • Spring MVC-toepassing Spring opnieuw naar Tomcat
  • Herstart Tomcat
  • Lijstitem

classnotfoundexception


Antwoord 5, autoriteit 4%

ik ontdekte dat in de deployment assemblyde volgende vermelding stond:

[persisted container] org.maven.ide.eclipse.maven2_classpath_container

ik heb het verwijderd en het item maven dependenciestoegevoegd, en het werkt nu prima.


Antwoord 6, autoriteit 2%

Als al deze adviezen niet werken, moet u uw server opnieuw maken (Tomcat of iets dergelijks). Dat loste mijn probleem op.


Antwoord 7, autoriteit 2%

Neem onderstaande afhankelijkheid op in uw pom.xml

<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
   <version>{spring-version}</version>
</dependency>

Antwoord 8, autoriteit 2%

Ik had hetzelfde probleem. Toen ik de map Maven repository .m2 (….m2\repository\org\springframework\spring-webmvc) in mijn lokale map zag, vond ik twee 3.2.0.RELEASE-mappen. DUS heb ik er een verwijderd.
Toen ging ik naar project, klik met de rechtermuisknop->properties->deployment essembly-> voeg maven afhankelijkheden toe.
clean build en start de server opnieuw op.
Toen werd de DispatcherServlet geladen.


Antwoord 9

  1. Ga naar eigenschappenvan Projectwaaraan u werkt
  2. Kies het menu Deployment Assemblyen klik op de knop toevoegen
  3. kies de Java Build Path Entriesen klik op Maven Dependencies
  4. Bouwhet project en voer het uit

voer hier de afbeeldingsbeschrijving in


Antwoord 10

In mijn geval krijg ik dit probleem na het gebruik van het updateprojecthulpprogramma van de maven.
Ik heb alle door jou voorgestelde oplossingen geprobeerd, maar niets leek te werken.
Uiteindelijk was de oplossing gewoon om het project van de server te verwijderen om ervoor te zorgen dat het schoon was, en het opnieuw toe te voegen. Dan werkt het, ik hoop dat deze oplossing jullie kan helpen.


Antwoord 11

U kunt de GlassFish-server gebruiken en de fout zal worden opgelost. Ik heb het geprobeerd met tomcat7 en tomcat8, maar deze fout kwam continu maar werd opgelost met GlassFish. Ik denk dat het een probleem is met de server.

Dit zijn de resultaten met tomcat7:
Resultaten met tomcat7

Hier zijn de resultaten met GlassFish:
Resultaten met GlassFish


Antwoord 12

klik met de rechtermuisknop op uw project en kies eigenschappen.
klik op Implementatie Montage.
klik op toevoegen
klik op “Java Build Path Entries”
selecteer Maven-afhankelijkheden”
klik op Voltooien.


Antwoord 13

Het kan nuttig zijn voor iemand, dus ik zal het hier posten.
Ik miste deze afhankelijkheid van mijn pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Antwoord 14

Ik heb het opgelost door deze stappen te volgen:

  • Klik met de rechtermuisknop in het project > Configureer > Converteren naar Maven-project
  • Klik na de conversie met de rechtermuisknop in het project > Maven > Project bijwerken

Dit corrigeert de “Deployment Assembly”-instellingen van het project.


Antwoord 15

Verplaats de jar-bestanden van uw klassenpad naar web-inf/liben voer een nieuwe Tomcat-server uit.


Antwoord 16

Ik heb een eenvoudige oplossing gevonden,
Voeg eenvoudig uw potten toe aan de WEB-INF–>lib-map..


Antwoord 17

Ik had hetzelfde probleem in WebSphere, maar kon geen oplossing vinden, ook al heb ik geverifieerd dat de Spring-afhankelijkheden aanwezig waren en het werkte prima in tomcat. Ik heb de applicatie uiteindelijk verwijderd en kreeg nog steeds de foutmelding, dus ik denk dat WebSphere vasthield aan een corrupte instantie.

Om het probleem op te lossen moest ik de applicatie opnieuw installeren, stoppen, verwijderen en opnieuw installeren.


Antwoord 18

Voor mij was het een fout in de pom.xml– ik had <scope>provided<scope>ingesteld op mijn afhankelijkheden, en dit maakte ze niet gekopieerd worden tijdens de fase mvn package.

Mijn symptomen waren de foutmelding die het OP plaatste, en dat de jars niet waren opgenomen in het WEB-INF/lib-pad binnen de .war nadat het pakket was uitgevoerd. Toen ik het bereik verwijderde, verschenen de potten in de uitvoer en alles wordt nu goed geladen.

Other episodes