【问题标题】:Java Spring MVCJava Spring MVC
【发布时间】:2013-12-01 02:24:20
【问题描述】:

所以我正在学习 Spring MVC 并且有这个 error java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

我想我知道这个错误。它与映射有关,但我对映射的了解不足无法解决问题。所以这里是类......我不认为我错过了外部 JAR。我附上了所有必要的 jar 文件。

好吧,我不知道如何在此处插入计算机中的图像。这是我的 index.jsp 页面。

首页登录

当用户点击“登录”选项卡时,dispatcher-servlet 会调用下面的控制器 并将点击器带到 UserLogin.jsp 页面

这是错误代码:

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
    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:5176)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
    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)

package com.fdmgroup.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

    @Controller
    public class LoginController {

        /* Loading Home Page */
        @RequestMapping(value = "/Login.html", method = RequestMethod.GET)
        public String loadIndexPage() {
            return "UserLogin";
        }


    }

这是我的 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>LibraryHybernateSpringMaven</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.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>

这是我的 spring-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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
        http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

   <!-- Scan the package containing annotations -->     
  <context:annotation-config />
  <context:component-scan base-package="com.fdmgroup.daoimpl, com.fdmgroup.servicelayers" />

  <!-- jspViewResolver bean – This bean defined view resolver for spring mvc. For this bean we also set prefix as “/WEB-INF/jsp/”
   and suffix as “.jsp”. Thus spring automatically resolves the JSP from WEB-INF/jsp folder and assigned suffix .jsp to it. -->
  <bean id="jspViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

 </beans>

这是我的 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>LibraryHybernateSpringMaven</groupId>
  <artifactId>LibraryHybernateSpringMaven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <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>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>1.2.6</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.github.ferstl</groupId>
        <artifactId>spring-jdbc-oracle-ojdbc</artifactId>
        <version>0.9.0</version>
    </dependency>
    <dependency>
        <groupId>com.mysema.spring</groupId>
        <artifactId>spring-tx-annotations</artifactId>
        <version>0.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.2.5.RELEASE</version>
    </dependency>
  </dependencies>
</project>

是否有任何书籍可以解释如何使用 Spring MVC 进行编程,例如 Java 如何编程?谢谢

【问题讨论】:

  • 弹簧核心 1.2.6?是的,有书籍、教程、示例应用等。
  • 发布完整的异常。
  • 那么您的具体问题是什么?实际上,您的主要问题是寻求建议-这是不受欢迎的。如果您可以用您的代码隔离特定错误,我们将更有能力为您提供帮助。
  • 我用错误日志编辑了我的问题。找不到类:Dispatcher Servlet。我认为正因为如此,当我单击“登录”选项卡时,我会进入出现 404 错误且未找到资源的页面。

标签: java spring-mvc


【解决方案1】:

似乎一切正常,就像这个话题:

Can't run 'Hello World" Spring MVC code

您可以搜索您的项目和我在那里共享的模板之间的差异,或者直接使用它。

【讨论】:

    【解决方案2】:

    您可以点击以下链接。

    http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/ 逐步解释。看起来您在类路径中缺少一些 spring MVC 的核心依赖项

    【讨论】:

    • 我还是找不到。我复制了 Mkyong 示例,但仍然出现找不到类错误。现在我有“uri =“java.sun.com/jsp/jstl/core”的标签库错误。我什至没有碰那个文件。
    【解决方案3】:

    一切看起来都很好。看起来构建路径中缺少依赖项。

    确保您在 Java 构建路径和部署程序集中具有 maven 依赖项。

    编辑 1:

    尝试执行以下操作:

    a) 检查构建路径中是否有依赖项。右键单击项目并转到 --> Java Build Path 查看构建路径中是否有 Maven Dependency 目录。如果没有,请单击 Add Lib 并选择 Java Build Path Entries,然后选择 Maven Dependency。虽然不是真的需要,但类似地,转到部署程序集,看看那里是否有 Maven 依赖项。

    b) 尝试将 spring-core 依赖的版本更改为 3.2.5.RELEASE

    【讨论】:

    • 这就是我必须正确添加这些 JAR 文件的方法。右键单击项目,构建路径,添加外部 jar。我看过帖子说那些 Spring JARS 需要独立于 /web-inf/lib
    • 更新我的答案看看!
    【解决方案4】:

    我知道为什么它找不到 DispatcherServlet。我必须将依赖项添加到部署程序集中。这是遇到类似情况的初学者的步骤:

    右键项目 构建路径 部署程序集 > 单击 Web 内容 > 单击添加 单击 Java 构建路径条目 > 然后添加库和依赖项

    【讨论】:

    • Raunak Agarwal 回答了这个问题。天哪,我应该看看他的最新答案。
    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2019-05-19
    • 2012-01-01
    • 2017-01-27
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多