Я использую spring 3.1.0.RELEASE , и мой контейнер сервлетов - это tomcat 7, а моя IDE - это eclipse indigo, а jar spring-webmvc-3.1.0.RELEASE.jar, содержащий DispatcherServlet, существует в папке lib, но когда при запуске приложения я получаю исключение:
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)
Посоветуйте, пожалуйста, почему я получаю это исключение и как его исправить.
РЕДАКТИРОВАТЬ: следующие мои файлы конфигурации:
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>
также при попытке получить доступ к любой странице в приложении я получаю исключение:
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
Махмуд Салех
источник
источник
Ответы:
Вам необходимо добавить «Maven Dependency» в сборку развертывания.
Восстановите и разверните снова
Примечание: это также применимо для проекта, отличного от maven .
источник
Два возможных ответа:
1- Вы не включили в свою библиотеку файлы spring-beans и spring-context jar. Если вы используете maven (что очень поможет), этих двух строк будет достаточно
<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- Необходимые jar-файлы находятся в вашем пути к классам, но не развернуты на tomcat.
источник
spring-webmvc
к моемуpom.xml
решит проблему. Спасибо.Привет, ребята, у меня была такая же проблема с Idea Intellij и Spring 4, я исправил проблему и хотел поделиться с вами ответом.
Я использую tomcat 7 / idea intellij 13 / spring 4
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>
По идее Intellij вам нужно перейти в Файл -> Настройки проекта -> Артефакты. затем
очистить -> пересобрать проект -> собрать артефакт, и все будет в порядке ...
источник
Это решает проблему для меня. Это легко и довольно просто объясняется.
Шаг 1
Шаг 2
Шаг 3
Шаг 4
Шаг 5
classnotfoundexception
источник
Я обнаружил, что в сборке развертывания есть запись:
Я удалил его и добавил
maven dependencies
запись, и теперь он работает нормально.источник
Если все эти советы не работают, вам следует воссоздать свой Сервер (Tomcat или что-то подобное). Это решило мою проблему.
источник
Включите ниже зависимость в свой pom.xml
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>{spring-version}</version> </dependency>
источник
Я столкнулся с той же проблемой. Когда я увидел папку .m2 репозитория maven (.... m2 \ repository \ org \ springframework \ spring-webmvc) в моем локальном хранилище, я обнаружил две папки 3.2.0.RELEASE. ТАК Я удалил один. Затем я перешел в проект, щелкните правой кнопкой мыши-> свойства-> сборка развертывания-> добавьте зависимости maven. чистая сборка, а затем перезапустите сервер. Затем загрузился DispatcherServlet.
источник
В моем случае эта проблема возникает после использования утилиты проекта обновления maven. Я попробовал все предложенные вами обходные пути, но ничего не помогло. В конце концов, решение заключалось в том, чтобы просто удалить проект с сервера, чтобы убедиться, что он чистый, и добавить его снова. Тогда это сработает, надеюсь, это решение поможет любому из вас.
источник
Вы можете использовать сервер GlassFish, и ошибка будет решена. Я пробовал использовать tomcat7 и tomcat8, но эта ошибка появлялась постоянно, но решалась с помощью GlassFish. Думаю проблема с сервером.
Вот результаты с tomcat7:
Вот результаты с GlassFish:
источник
Щелкните правой кнопкой мыши свой проект и выберите свойства. щелкните Deployement Assembly. нажмите "Добавить", нажмите "Записи пути сборки Java", выберите "Зависимости Maven", нажмите "Готово".
источник
Это может быть кому-то полезно, так что выложу здесь. Мне не хватало этой зависимости от моего
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>
источник
источник
Я решил, выполнив следующие шаги:
Это исправляет настройки «Развертывания сборки» проекта.
источник
Переместите файлы jar из пути к классам в web-inf / lib и запустите новый сервер tomcat.
источник
Я нашел простое решение: просто добавьте свои банки в папку WEB-INF -> lib ..
источник
У меня была такая же проблема в WebSphere, но я не смог найти решение, хотя я проверил, что зависимости Spring присутствуют, и он отлично работает в tomcat. Я удалил приложение, но по-прежнему получал ошибку, поэтому я думаю, что WebSphere зависает на каком-то поврежденном экземпляре.
Чтобы решить эту проблему, мне пришлось переустановить приложение, остановить его, удалить, а затем переустановить.
источник
Для меня это была ошибка
pom.xml
- я установил<scope>provided<scope>
свои зависимости, и из-за этого они не копировались наmvn package
этапе.Моими симптомами было сообщение об ошибке, опубликованное OP, и то, что банки не были включены в путь WEB-INF / lib внутри .war после запуска пакета. Когда я удалил прицел, на выходе появились банки, и теперь все загружается нормально.
источник