Tomcat tidak memuat Dispatcher Servlet (ClassNotFoundException)

Saya telah mencoba mencari dan melakukan perubahan sesuai jawaban pertanyaan di atas, tetapi tidak berhasil. Saya tidak menggunakan alat pembuatan apa pun.

Semua file jar jstl1.2, logging umum 1.1.3, dan toples Spring 3.2.3 ada di WebContent/WEB-INF/lib

index.jsp adalah file selamat datang ditampilkan dengan benar di browser Eclipse, tetapi ketika saya mengklik hyperlink untuk pengontrol, berikan 404 Sumber daya yang diminta tidak tersedia. Dari log sepertinya kucing jantan tidak memuat servlet operator

Saya mencoba memulai ulang/membersihkan dan menerbitkan kucing jantan,

menggunakan Tomcat 7, jre7, Eclipse kepller 4.0, dengan Java ee 2.0

Hargai bantuan Anda

Log 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

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

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

HaloWorldController.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 sumber
comment
coba cari DispatcherServlet di jalur build, gunakan ctrl+shift+T (di gerhana) dan lihat apakah ada toples yang dihasilkan di lib proyek Anda   -  person Laabidi Raissi    schedule 02.07.2013
comment
@LaabidiRaissi: Hai, seperti yang Anda sebutkan, itu tidak muncul di lib proyek, saya melampirkan sumber tetapi tidak berhasil. Bagaimana kita memastikan bahwa semua toples ada di lib proyek, saya menyalin semua toples di folder WebInf/lib. Bukankah ini cukup atau kita perlu melakukan hal lain? Terima kasih telah menunjukkan hal ini   -  person user2477933    schedule 02.07.2013
comment
Apakah kita memerlukan file sumber? menurut saya hanya file .class saja yang cukup?   -  person user2477933    schedule 02.07.2013
comment
klik kanan pada toples Anda -> Jalur pembuatan -> Tambahkan ke jalur pembuatan (tentu saja dalam gerhana)   -  person Laabidi Raissi    schedule 02.07.2013
comment
tentu saja kita hanya memerlukan toples biner, tetapi karena kelas tersebut tidak ditemukan di jalur kelas Anda, maka kelas tersebut tidak ditambahkan dengan benar ke dalamnya   -  person Laabidi Raissi    schedule 02.07.2013


Jawaban (2)


Berdasarkan jejak tumpukan Anda kehilangan spring-webmvc.jar yang berisi kelas DispatcherServlet. Coba periksa lagi classpath Anda (WEB-INF/lib) untuk memastikan toples itu ada. Biasanya pada aplikasi Spring MVC Anda memerlukan toples berikut:

masukkan deskripsi gambar di sini

Saya juga menyarankan Anda menggunakan alat manajemen ketergantungan (misalnya: Maven / ivy) jika tidak maka akan terlalu sulit untuk mengelola toples sendiri

person gerrytan    schedule 02.07.2013
comment
Saya memiliki toples yang disebutkan di atas di (WEB-INF/lib). Tapi itu tidak berhasil. Saya telah menambahkan tampilan penjelajah proyek gerhana saya. Beri tahu saya jika Anda menemukan masalah dengan hal tersebut - person user2477933; 02.07.2013
comment
itu tidak mengizinkan untuk menambahkan gambar tetapi saya yakin toples itu ada di direktori yang Anda katakan - person user2477933; 02.07.2013
comment
Saya kehilangan commons-logging-1.1.1.jar. Saya sudah membuang waktu hampir 3 jam.............akhirnya berhasil. Terima kasih, - person Surajit Biswas; 24.03.2017

Cukup tambahkan semua file jar yang diperlukan ke folder WEB-INF/lib, lalu itu berfungsi untuk saya. dalam hal ini hanya kelas DispatcherServlet yang ditemukan

person Chandrasekhar Allu    schedule 05.12.2015