Tomcat не загружает диспетчерский сервлет (ClassNotFoundException)

Я пытался искать и вносить изменения в соответствии с ответами на вышеуказанный вопрос, но не работал. Я не использую никаких инструментов сборки.

Все jar-файлы jstl1.2, общие журналы 1.1.3 и jar-файлы Spring 3.2.3 находятся в WebContent/WEB-INF/lib.

index.jsp - это файл приветствия, который правильно отображается в браузере Eclipse, но когда я нажимаю гиперссылку для контроллера, выдается 404 Запрошенный ресурс недоступен. Из журнала кажется, что tomcat не загружает диспетчерский сервлет

Я попытался перезапустить/очистить и опубликовать tomcat,

с использованием tomcat 7, jre7, eclipse kepller 4.0, с java ee 2.0

Ценю твою помощь

Журналы Tomcat:

   ul 02, 2013 1:16:52 PM org.apache.catalina.core.ApplicationContext log
    I**NFO: No Spring WebApplicationInitializer types detected on classpath
    Jul 02, 2013 1:16:52 PM org.apache.catalina.core.ApplicationContext log
    INFO: Marking servlet spring as unavailable
    Jul 02, 2013 1:16:52 PM org.apache.catalina.core.StandardContext loadOnStartup
    SEVERE: Servlet /SpringMVC threw load() exception
    java.lang.ClassNotFoundException:             org.springframework.web.servlet.DispatcherServlet**
            
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Jul 02, 2013 1:16:53 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jul 02, 2013 1:16:53 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 02, 2013 1:16:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 11462 ms

веб.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app
<?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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                        http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan
        base-package="com.maverick.springmvc.controller" />

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>
1.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app
<?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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                        http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan
        base-package="com.maverick.springmvc.controller" />

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>
0.xsd" id="WebApp_ID" version="3.0"> <display-name>SpringMVC</display-name>  <welcome-file-list>         <welcome-file>index.jsp</welcome-file>     </welcome-file-list>       <servlet>         <servlet-name>spring</servlet-name>         <servlet-class>             org.springframework.web.servlet.DispatcherServlet         </servlet-class>         <load-on-startup>1</load-on-startup>     </servlet>     <servlet-mapping>         <servlet-name>spring</servlet-name>         <url-pattern>*.html</url-pattern>     </servlet-mapping> </web-app>

весна-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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                        http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan
        base-package="com.maverick.springmvc.controller" />

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

HelloWorldController.java

package com.maverick.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


@Controller
public class HelloWorldController {


    @RequestMapping("/hello")
    public ModelAndView helloWorld() {

        System.out.println("test");
        String message = "Hello World, Spring 3.0!";
        return new ModelAndView("hello", "message", message);
    }
}

person user2477933    schedule 02.07.2013    source источник
comment
попробуйте найти DispatcherServlet в пути сборки, используя ctrl+shift+T (в eclipse) и посмотрите, есть ли один из них, если полученные jar-файлы содержатся в вашей библиотеке проекта   -  person Laabidi Raissi    schedule 02.07.2013
comment
@LaabidiRaissi: Привет, как вы упомянули, это не отображалось в библиотеке проекта, я прикрепил исходный код, но это не сработало. Как нам убедиться, что все банки находятся в библиотеке проекта, я скопировал все банки в папку WebInf/lib. Этого недостаточно или нужно что-то еще? Спасибо за указание на это   -  person user2477933    schedule 02.07.2013
comment
Нужен ли нам исходный файл? Я думаю, что только файла .class должно быть достаточно?   -  person user2477933    schedule 02.07.2013
comment
щелкните правой кнопкой мыши на своих банках --> Путь сборки --> Добавить в путь сборки (конечно, в eclipse)   -  person Laabidi Raissi    schedule 02.07.2013
comment
конечно нам нужны только бинарные банки, но так как класс не был найден в вашем пути к классам, то он не правильно добавлен в него   -  person Laabidi Raissi    schedule 02.07.2013


Ответы (2)


Судя по трассировке стека, вам не хватает spring-webmvc.jar, который содержит класс DispatcherServlet. Попробуйте еще раз проверить путь к классам (WEB-INF/lib), чтобы убедиться, что jar существует. Обычно в приложении Spring MVC вам понадобятся эти jar-файлы:

введите здесь описание изображения

Я также рекомендую вам использовать инструмент управления зависимостями (например, Maven/ivy), иначе слишком сложно управлять банками самостоятельно.

person gerrytan    schedule 02.07.2013
comment
У меня есть вышеупомянутая банка в (WEB-INF/lib). Но это не работает. Я добавил представление обозревателя проекта eclipse. Дайте мне знать, если вы обнаружите какие-либо проблемы с этим - person user2477933; 02.07.2013
comment
он не позволяет добавлять изображения, но я уверен, что jar присутствует в каталоге, который вы сказали - person user2477933; 02.07.2013
comment
Мне не хватало commons-logging-1.1.1.jar. Я потратил впустую почти 3 часа............ наконец это сработало. Спасибо, - person Surajit Biswas; 24.03.2017

Просто добавьте все необходимые файлы jar в папку WEB-INF/lib, тогда у меня все работает. в этом случае найден только тот класс DispatcherServlet

person Chandrasekhar Allu    schedule 05.12.2015