今天在Spring MVC初试的时候,突然给我来个了如下错误:
1.
Error Information
Console Error Information:
严重: Error loading WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@c2ff5
org.springframework.web.servlet.DispatcherServlet
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
Http Error Information:
javax.servlet.ServletException: Wrapper cannot find servlet class org.springframework.web.servlet.DispatcherServlet or a class it depends on
...
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
...
2.
Analysis & Solution
之前jar包我是通过Build path -> Configure build path-> Add External JARs的方式添加的,程序编译,Tomcat启动都很正常,没有错误。可是一访问jsp页面就报上述错误。
苦思不得其解,但看了错误信息说是找不到org.springframework.web.servlet.DispatcherServlet类,所以我就干脆将spring.jar,spring-webmvc.jar等jar包通通手工添加到/WEB-INF/lib目录下,并且将default output folder值改为projectName/WebContent/WEB-INF/classes
问题就得以解决了。
分享到:
相关推荐
Error loading WebappClassLoader org.springframework.web.servlet.DispatcherServlet java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at org.apache.catalina.loader....
标题 "Problem with WebappClassLoader in background thread" 指向的是一个关于Web应用程序类加载器(WebappClassLoader)在后台线程中遇到的问题。在Java的Web应用开发中,WebappClassLoader是Tomcat等Servlet容器...
The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. ...
2. **类查找策略**:`WebappClassLoader`遵循“双亲委派模型”(Parents Delegation Model),首先尝试从父ClassLoader加载类,如果找不到再在自己的类路径下查找。这保证了公共类库的类优先被加载,而Web应用特有的...
`WebappClassLoader$PrivilegedFindResourceByName.class`、`WebappClassLoader$1.class`、`WebappClassLoader$PrivilegedGetClassLoader.class`和`WebappClassLoader$PrivilegedFindResource.class`这些内部类可能...
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817) at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872) at org.apache....
4. **使用WebAppClassLoader**:针对特定应用的JAR,应放在Web应用的`WEB-INF/lib`下,由WebAppClassLoader加载。 **三、配置文件详解** 1. **server.xml**:这是Tomcat的主要配置文件,包含了Server、Service、...
当 web 应用被卸载时,WebappClassLoader 本应随之被垃圾收集器回收。然而,如果存在对 WebappClassLoader 的强引用,那么这个类加载器就无法被回收,进而导致了内存泄漏。 在描述的案例中,`LeakingServlet` 是一...
十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [org.logicalcobwebs.proxool.ProxoolDriver] ...
这是打破双亲委派模型的关键,因为WebAppClassLoader会优先尝试加载应用自己的类库,而不是依赖于全局的系统类加载器。 2. **CommonClassLoader**: 这是Tomcat的全局类加载器,负责加载服务器级别的类库,这些类库...
对于 Tomcat 而言,内存泄漏常常与类加载器(ClassLoader)有关,特别是 WebappClassLoader。WebappClassLoader 是 Tomcat 为每个部署的应用程序实例创建的,负责加载该应用的类和资源。在热部署场景下,当应用被...
如果线程持续存在,即使web应用被重新加载,`ThreadLocal`仍然保留对`MyCounter`和`WebappClassLoader`的引用,导致`WebappClassLoader`不能被垃圾收集器回收,进而引发内存泄漏。 为了解决这个问题,首先我们需要...
3. "理解Tomcat的WebappClassLoader(web应用类加载器)一.doc":进一步探讨WebappClassLoader的工作机制,包括类查找策略、双亲委派模型的实现及其在多web应用环境下的应用。 4. "Tomcat源码分析(4)容器处理链接之...
一旦检测到变化,Tomcat会停止应用的启动线程,清除引用,并将加载该应用的WebappClassLoader置为null,然后创建一个新的WebappClassLoader实例重新加载应用。 在Maven工程中配置Tomcat热部署,需要在pom.xml文件中...
7. **错误处理和日志系统**:Tomcat有自己的日志框架,学习`Logger`和`ErrorHandler`的使用,能帮助你更好地定位和解决运行时问题。 通过以上这些关键点的学习,结合《深入剖析Tomcat》这本书的指导,你将能够逐步...
例如,`Bootstrap ClassLoader`加载JDK的核心类库,`Extension ClassLoader`加载扩展类库,而`WebAppClassLoader`则专门负责加载Web应用中的类。这个例子可能是针对`WebAppClassLoader`的测试。 3. **隔离性**:每...
5. **类加载**:探究`org.apache.catalina.loader.WebappClassLoader`,了解如何加载Web应用的类。 6. **部署与卸载**:了解`org.apache.catalina.manager.ManagerBase`和`org.apache.catalina.startup....