Spring MVC突然上课没有找到DispatcherServlet

时间:2014-02-11 15:20:36

标签: java spring maven spring-mvc model-view-controller

我的WebApp正在运行,一切都很好,直到我尝试实现一些文件上传。 但它没有用,所以我把所有东西归还给了以前的状态。但从那以后它不起作用。我的Stacktrace:

Feb 11, 2014 4:11:35 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\java\jdk1.7.0_25\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files\Intel\DMIX;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\java\SlikSvn\bin;C:\java\apache-maven-3.0.5\bin;C:\java\apache-ant-1.8.4\bin;C:\java\SlikSvn\bin;C:\java\jdk1.7.0_25\bin;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files\Intel\DMIX;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\java\SlikSvn\bin;C:\Python27\Scripts;C:\Program Files (x86)\Google\google_appengine\;.
Feb 11, 2014 4:11:35 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:springproject' did not find a matching property.
Feb 11, 2014 4:11:36 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Feb 11, 2014 4:11:36 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 521 ms
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.35
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet ds as unavailable
Feb 11, 2014 4:11:36 PM org.apache.catalina.core.ApplicationContext log
SEVERE: Error loading WebappClassLoader
  context: /springproject
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@139231a9
 org.springframework.web.servlet.DispatcherServlet
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Feb 11, 2014 4:11:36 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /springproject threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1128)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Feb 11, 2014 4:11:36 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Feb 11, 2014 4:11:36 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Feb 11, 2014 4:11:36 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/13  config=null
Feb 11, 2014 4:11:36 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 672 ms
Feb 11, 2014 4:11:42 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet ds is currently unavailable
Feb 11, 2014 4:11:43 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet ds is currently unavailable
Feb 11, 2014 4:11:44 PM org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet ds is currently unavailable

我的Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springproject</groupId>
<artifactId>springproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>


<dependencies>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.0.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>

    <!-- Spring JDBC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.0.0.RELEASE</version>
    </dependency>
    <!-- H2 Driver -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.2.140</version>
    </dependency>

    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20070829</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.9</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.1</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

</dependencies>

我的Web.xml:

<?xml version="1.0" encoding="UTF-8"?>

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“     版本= “2.4” &GT;

<display-name>springproject</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/Application-context.xml</param-value>
</context-param>


<!-- Handles all requests into the application -->
<servlet>
    <servlet-name>ds</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/servlets/servlet-context.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ds</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

我试图清理,重新发布,通过maven更新,删除和从备份恢复但它仍然无法正常工作,请帮忙。

8 个答案:

答案 0 :(得分:7)

如果您正在使用Eclipse,请右键单击该项目,转到“属性”,然后在“部署程序集”上单击Add.. -> Java Build Path -> Maven Dependencies。单击“确定”,清理项目,然后重试。看看是否有效。

答案 1 :(得分:0)

您是否将Eclipse Web Tools Platform与Eclipse管理的Tomcat一起使用?如果是这样,请尝试通过右键单击“Servers”视图中的服务器实例节点并选择“Clean ...”和“Clean Tomcat Work Directory”来清理Tomcat。如果在该视图中展开服务器节点,则会看到已部署的应用程序。右键单击应用程序节点,然后选择“清理模块工作目录...”

答案 2 :(得分:0)

此外,执行Maven更新(右键单击 - &gt; Maven-&gt;更新项目...)。我发现有时我的项目会以某种方式丢失其依赖项,并且我会得到与您相同的异常。

答案 3 :(得分:0)

您是否检查过配置文件的名称和路径是否正确? Application-context.xmlservlet-context.xml

你说你试图实现文件上传功能。它似乎打破了一些东西。您应该尝试恢复到实施之前的版本,然后检查您的webapp是否正常工作。

答案 4 :(得分:0)

好的伙计我可以解决这个奇怪的错误,问题是 tomcat服务器我创建了一个新的,然后添加了Project。现在一切正常,谢谢你的帮助。

答案 5 :(得分:0)

我们任何人都面临DispatcherServlet.class未找到例外,请按照以下步骤操作:

  1. 您遇到此错误,因为您的tomcat版本较旧(低于6.0)和/或jar文件未放在WEB-INF / lib中。因此,构建一个新的(完全空白的)动态Web项目。创建项目文件(我只谈论你创建的文件......即控制器,jsps,htmls,XML)
  2. 删除tomcat服务器(如果它低于6.0版本(我是5.5并且我遇到了同样的错误,然后下载了6.0)并删除,请转到服务器选项卡,您将在旁边找到&#39; Console&#39;标签。删除那里的服务器,然后右键单击您的项目,转到configure-&gt;构建路径 - &gt; “库”选项卡..&#39;删除&#39;从那里开始服务器。然后构建清理并刷新项目。
  3. 现在转到您的浏览器,下载apache tomcat 6.0版本。将此下载的文件夹粘贴到您想要的任何驱动器和任何文件夹中。
  4. 现在回到你的IDE,复制jar文件并将它们粘贴到WEB-INF / lib文件夹中(不要完全配置BUILD-PATH,因为类似于dipatcher servelet的类将动态地从WEB-INF / lib文件夹调用默认情况下..转到你的驱动器,复制所有的罐子。然后回到你的IDE ..go到你的项目,粘贴到WEB-INF / lib。然后bulid-clean和刷新项目。 5.右键单击您的项目,在服务器上运行方式运行。在弹出窗口中,您将看到服务器选择的下拉列表,更改为&#34;无&#34;那里(这很重要)。单击下一步,然后它将要求您浏览到服务器文件夹.SO浏览到您下载的文件夹,按完成后选择它。宾果。完成了。

答案 6 :(得分:0)

在服务器选项卡下的

->单击清理/清理Tomcat工作目录。同样在扩展服务器下,右键单击服务器上已部署的应用程序,然后单击“清理模块工作目录”,然后重新启动服务器。这解决了我的“找不到Dispatcher Servlet类”的问题。 谢谢。

答案 7 :(得分:0)

我在 IntelliJ (2020.3) 中通过转到 File -> Invalidate Caches / Restart 修复了这个问题。一旦它重新启动,我就可以毫无问题地构建和运行我的 WAR 文件。