【问题标题】:ClassNotFoundException for DispatcherServletDispatcherServlet 的 ClassNotFoundException
【发布时间】:2014-09-22 17:45:38
【问题描述】:

自从有一天我遇到了一个非常烦人的问题 - 我无法运行任何 Spring MVC 应用程序:/ 今天我尝试根据 Spring Documentation 编写一些东西。所以我从头开始创建这个:

web.xml

<web-app>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/root-context.xml</param-value>
  </context-param>
  <servlet>
    <servlet-name>bloger</servlet-name>
    <servlet-class>org.spring.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>bloger</servlet-name>
    <url-pattern>/bloger/*</url-pattern>
  </servlet-mapping>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>

根上下文.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:p="http://www.springframework.org/schema/p"
    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.xsd">

    <context:component-scan base-package="spring.blog.test"/>

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

简单控制器:

@Controller
public class SimpleController {
    @RequestMapping("/hello")
        public String helloWorld() {
        return "index";
    }
}

当然还有 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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.spring.blog</groupId>
  <artifactId>learn</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>learn Maven Webapp</name>
  <url>http://maven.apache.org</url>

   <properties>
 <spring.version>4.0.1.RELEASE</spring.version>
 </properties>
 <dependencies>
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>3.8.1</version>
 <scope>test</scope>
 </dependency>
 <!-- Spring dependencies -->
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-core</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>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
 </dependency>

 </dependencies>
  <build>
    <finalName>learn</finalName>
  </build>
</project>

我正在使用 Spring Tool Suite(Windows 上的 3.6.0.RELEASE)运行它——我在开发人员博客中的其他项目中遇到了类似的问题。 也许你有简单的 Spring MVC 模板,必须工作?

P.S 它不适用于 spring v. 3

lip 30, 2014 11:48:29 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /learn threw load() exception
java.lang.ClassNotFoundException: org.spring.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.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)

编辑:///

好的,它可以在 Netbeans 中工作......

【问题讨论】:

  • 看看生成的WAR文件。检查 spring 的 jars 是否在 WEB-INF/lib 文件夹中。
  • 在 maven 依赖项中,我有:junit、spring-core、commins-logging、spring-web、spring-aop、aopalliance、spring-beans、spring-context、spring-webmvc、spring-expression、 javax.servlet-api - 依赖项看起来一切正常。
  • 我已经从你的 pom 文件中检查过了。我的意思是让您验证这些库是否存在。
  • 是的,我在 org.spring.web.servlet 中有 DispatcherServlet.class
  • 你试过添加“spring-mvc”依赖吗?

标签: java xml spring maven spring-mvc


【解决方案1】:

web.xml 中的代码需要进行少量更改,请删除

 <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>

并更改您的“root-context.xml”并添加以下行。

    <mvc:annotation-driven />
<context:component-scan base-package="spring.blog.test"/>

并且您必须更改您的 pom.xml 并在您的 pom.xml 中的 &lt;build&gt; 下提供 &lt;outputDirectory&gt;, &lt;sourceDirectory&gt;, &lt;resources&gt;。它会告诉从哪里获取 root-context.xml。

【讨论】:

猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 2015-04-14
  • 2016-09-12
相关资源
最近更新 更多