używam spring 3.1.0.RELEASE , a moim kontenerem serwletów jest tomcat 7, a moim IDE jest eclipse indigo, a jar spring-webmvc-3.1.0.RELEASE.jar, który zawiera serwlet DispatcherServlet, istnieje w folderze lib, a kiedy uruchamiając aplikację, otrzymuję 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ę doradzić, dlaczego otrzymuję ten wyjątek i jak go naprawić.
EDYCJA: poniżej znajdują się moje pliki konfiguracyjne:
1-. Ziarna wiosenne:
<?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>
również przy próbie dostępu do dowolnej strony w aplikacji pojawia się 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
spring
maven
spring-mvc
maven-2
Mahmoud Saleh
źródło
źródło
Odpowiedzi:
Musisz dodać „Zależność Mavena” w zestawie wdrażania
Przebuduj i wdróż ponownie
Uwaga: dotyczy to również projektów innych niż Maven .
źródło
Dwie możliwe odpowiedzi:
1- Nie włączyłeś do swojej biblioteki wiosennej fasoli i słoików z kontekstem wiosennym. Jeśli używasz mavena (co bardzo pomoże) te dwie linijki będą wystarczające
<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 znajdują się w twojej ścieżce klas, ale nie są rozmieszczone na tomcat.
źródło
spring-webmvc
do mojejpom.xml
woli rozwiąże problem. Dzięki.Cześć, 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
Zależności pom.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 idei Intellij musisz przejść do Plik -> Ustawienia projektu -> Artefakty. Następnie
clean -> przebuduj projekt -> zbuduj artefakt i wszystko będzie dobrze ...
źródło
To rozwiązuje problem za mnie. Jest to łatwe i dość prosto wyjaśnione.
Krok 1
Krok 2
Krok 3
Krok 4
Krok 5
klasa nie znaleziono wyjątku
źródło
stwierdziłem, że w zestawie wdrożeniowym był wpis:
usunąłem go i dodałem
maven dependencies
wpis i teraz działa dobrze.źródło
Jeśli wszystkie te rady nie działają, należy ponownie utworzyć serwer (Tomcat lub podobny). To rozwiązało mój problem.
źródło
Uwzględnij poniższą zależność w swoim pom.xml
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>{spring-version}</version> </dependency>
źródło
Miałem ten sam problem. Kiedy zobaczyłem folder .m2 repozytorium maven (.... m2 \ repository \ org \ springframework \ spring-webmvc) w moim lokalnym, znalazłem dwa foldery 3.2.0.RELEASE. Więc usunąłem jeden. Następnie przeszedłem do projektu, kliknij prawym przyciskiem myszy -> właściwości -> zestaw wdrożeniowy -> dodaj zależności mavena. czystą kompilację, a następnie zrestartuj serwer. Następnie załadowano DispatcherServlet.
źródło
W moim przypadku mam ten problem po użyciu narzędzia projektu aktualizacji Mavena. Wypróbowałem wszystkie sugerowane obejścia, ale wydawało się, że nic nie działa. Ostatecznie rozwiązaniem było po prostu usunięcie projektu z serwera, aby upewnić się, że jest czysty, i dodanie go ponownie. Wtedy działa, mam nadzieję, że to rozwiązanie mogłoby pomóc każdemu z was.
źródło
Możesz użyć serwera GlassFish, a błąd zostanie rozwiązany. Próbowałem z tomcat7 i tomcat8, ale ten błąd pojawiał się ciągle, ale został rozwiązany przez GlassFish. Myślę, że to problem z serwerem.
Oto wyniki z tomcat7:
Oto wyniki z GlassFish:
źródło
kliknij prawym przyciskiem myszy swój projekt i wybierz właściwości. kliknij Zestaw wdrożeniowy. kliknij dodaj kliknij „Java Build Path Entries” wybierz Maven Dependencies ”kliknij Zakończ.
źródło
To może być przydatne dla kogoś, więc opublikuję to tutaj. Brakowało mi tej zależności od mojego
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>
źródło
źródło
Rozwiązałem, wykonując następujące kroki:
Naprawia to ustawienia projektu „Deployment Assembly”.
źródło
Przenieś pliki jar ze swojej ścieżki klas do web-inf / lib i uruchom nowy serwer tomcat.
źródło
Znalazłem proste rozwiązanie, po prostu dodaj swoje słoiki do WEB-INF -> folder lib ..
źródło
Miałem ten sam problem w WebSphere, ale nie mogłem znaleźć rozwiązania, mimo że sprawdziłem, czy istnieją zależności Spring i działało w tomcat. W końcu odinstalowałem aplikację i nadal otrzymywałem błąd, więc myślę, że WebSphere zawiesił się na jakiejś uszkodzonej instancji.
Aby rozwiązać problem, musiałem ponownie zainstalować aplikację, zatrzymać ją, odinstalować, a następnie ponownie zainstalować.
źródło
Dla mnie to był błąd
pom.xml
- ustawiłem<scope>provided<scope>
na swoich zależnościach, a to powodowało, że nie były kopiowane namvn package
etapie.Moimi symptomami był komunikat o błędzie wysłany przez OP i to, że pliki JAR nie zostały uwzględnione w ścieżce WEB-INF / lib wewnątrz pliku .war po uruchomieniu pakietu. Kiedy usunąłem lunetę, na wyjściu pojawiły się słoiki i teraz wszystko ładuje się dobrze.
źródło