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

Używam spring 3.1.0.RELEASE , a mój kontener servlet to tomcat 7 , a mój IDE to eclipse indigo a jar wiosna-webmvc-3.1.0.Uwolnij.jar który zawiera DispatcherServlet istnieje w folderze lib, a jednak podczas uruchamiania aplikacji dostaję wyjątek:

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)

Proszę o poradę, dlaczego otrzymuję ten wyjątek i jak go naprawić.

EDIT: poniżej znajdują się moje pliki konfiguracyjne:

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- www.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>

Również podczas próby uzyskania dostępu do dowolnej strony w aplikacji, dostaję wyjątek:

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
Author: BalusC, 2012-06-27

15 answers

Musisz dodać "Maven Dependency" w Deployment Assembly

  • Kliknij prawym przyciskiem myszy na projekcie i wybierz Właściwości.
  • Kliknij Deployment Assembly.
  • Kliknij Dodaj
  • Kliknij na "Java Build Path Entries"
  • select Maven Dependencies "
  • kliknij Zakończ.

Rebuild and deploy again

Uwaga: dotyczy to również projektu non maven.

 213
Author: krakos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 05:07:43

Dwie możliwe odpowiedzi:

1 - nie uwzględniłeś wiosennych fasolek i wiosennych słoików kontekstowych w swojej lib. Jeśli używasz Mavena (co bardzo pomoże) te dwie linie wystarczą

<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 - niezbędne słoiki są w twojej ścieżce klasowej, ale nie są rozmieszczone na tomcacie.

 28
Author: Serkan Arıkuşu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-31 20:40:13

Cześć chłopaki miałem ten sam problem z Idea Intellij i Spring 4 naprawiłem problem i chciałem podzielić się z wami odpowiedzią.

Używam tomcat 7 / idea intellij 13 / spring 4

Pom.zależności xml

  <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>

W idea Intellij musisz przejść do File - > Project Settings - > artefakty. Wtedy Tutaj wpisz opis obrazka

Clean - > rebuild the project - > build the artefact and everything will be ok ...

 17
Author: Adelin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-06 17:53:35

Znalazłem, że w zbiorze był wpis:

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

Usunąłem go i dodałem wpis maven dependencies i teraz działa dobrze.

 8
Author: Mahmoud Saleh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-28 08:54:54

Miałem do czynienia z tym samym problemem. Kiedy zobaczyłem w repozytorium maven .folder m2(....m2 \ repository \ org \ springframework\spring-webmvc) w moim lokalnym znalazłem dwa 3.2.0.Zwolnij foldery. Więc usunąłem jedną. Następnie poszedłem do projektu, kliknij prawym przyciskiem myszy- > Właściwości-> deployment essembly - > dodaj zależności Mavena. Wyczyść kompilację, a następnie uruchom ponownie serwer. Następnie Dyspozytornia została załadowana.

 4
Author: TKS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 13:42:49

Jeśli wszystkie te porady nie działają, powinieneś ponownie utworzyć serwer (Tomcat lub coś podobnego). To rozwiązało mój problem.

 4
Author: Chinbold Gansukh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 03:26:19

W moim przypadku mam ten problem po użyciu narzędzia update Project Mavena. Próbowałem wszystkich obejść, które zasugerowałeś, ale nic nie działało. Na koniec rozwiązaniem było po prostu usunięcie projektu z serwera, aby upewnić się, że jest czysty, i dodać go ponownie. Wtedy to działa, Mam nadzieję, że to rozwiązanie może pomóc każdemu z was.

 2
Author: user2947452,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-02 09:46:35

Możesz użyć serwera GlassFish i błąd zostanie rozwiązany. Próbowałem z tomcat7 i tomcat8, ale ten błąd pojawiał się w sposób ciągły, ale rozwiązany z GlassFish. Myślę, że to problem z serwerem.

Oto wyniki z tomcat7: Wyniki z tomcat7

Oto wyniki z GlassFish: Wyniki z GlassFish

 2
Author: Superb Saif,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 16:11:16

Załącz poniższą zależność w swoim pom.xml

<dependency>
 <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
   <version>{spring-version}</version>
</dependency>
 2
Author: Victor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-24 19:36:30

To rozwiązuje problem dla mnie. Jest to łatwe i dość prosto wyjaśnione.

Krok 1

  • Kliknij prawym przyciskiem myszy projekt
  • Kliknij na właściwości

Krok 2

  • Kliknij zakładkę Deployment Assembly w zakładce
  • Kliknij Dodaj...

Krok 3

  • Kliknij na wpisy Java Build Path

Krok 4

  • Kliknij na Maven Dependencies
  • Kliknij przycisk Zakończ

Krok 5

  • Przesuń Wiosnę Aplikacja MVC do Tomcat again
  • Restart Tomcat
  • pozycja listy

Classnotfoundexception

 2
Author: Lycone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-03 11:22:27

Kliknij prawym przyciskiem myszy na projekcie i wybierz Właściwości. kliknij na Deployement Assembly. kliknij Dodaj kliknij na " Java Build Path Entries" wybierz zależności Maven" kliknij przycisk Zakończ.

 1
Author: Vishal Thakur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-12 19:05:23

Rozwiązałem wykonując następujące kroki:

  • Kliknij prawym przyciskiem myszy w projekcie > Configure > Convert to Maven project
  • po konwersji kliknij prawym przyciskiem myszy w project > Maven > Update project

To naprawia ustawienia "Deployment Assembly" projektu.

 0
Author: leo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-31 15:19:51

Przenieś pliki jar ze ścieżki classpath do web-inf / lib i uruchom nowy serwer tomcat.

 0
Author: ajai kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-24 17:56:29

Znalazłem proste rozwiązanie, Po prostu dodaj swoje słoiki do folderu WEB-INF-- > lib..

 0
Author: Karthik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-01 04:37:01

Miałem ten sam problem w WebSphere, ale nie mogłem znaleźć rozwiązania, mimo że zweryfikowałem zależności sprężyny i działał w tomcat po prostu dobrze. Skończyło się na odinstalowaniu aplikacji i nadal otrzymywał błąd, więc myślę, że WebSphere wisiał na jakiejś uszkodzonej instancji.

Aby rozwiązać problem, musiałem ponownie zainstalować aplikację, zatrzymać ją, odinstalować, a następnie ponownie zainstalować.

 0
Author: flip66,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-23 19:20:45