`
lxlong
  • 浏览: 81779 次
社区版块
存档分类
最新评论

Tomcat:因为ClassLoader启动失败

    博客分类:
  • java
阅读更多

 

As mentioned above, the web application class loader diverges from the default Java delegation model (in accordance with the recommendations in the Servlet Specification, version 2.4, section 9.7.2 Web Application Classloader). When a request to load a class from the web application's WebappX class loader is processed, this class loader will look in the local repositories first, instead of delegating before looking. There are exceptions. Classes which are part of the JRE base classes cannot be overridden. For some classes (such as the XML parser components in J2SE 1.4+), the J2SE 1.4 endorsed feature can be used. Last, any JAR file that contains Servlet API classes will be explicitly ignored by the classloader — Do not include such JARs in your web application. All other class loaders in Tomcat follow the usual delegation pattern.

 

Therefore, from the perspective of a web application, class or resource loading looks in the following repositories, in this order:

  • Bootstrap classes of your JVM
  • /WEB-INF/classes of your web application
  • /WEB-INF/lib/*.jar of your web application
  • System class loader classes (described above)
  • Common class loader classes (described above)

If the web application class loader is configured with <Loader delegate="true"/> then the order becomes:

  • Bootstrap classes of your JVM
  • System class loader classes (described above)
  • Common class loader classes (described above)
  • /WEB-INF/classes of your web application
  • /WEB-INF/lib/*.jar of your web application
分享到:
评论

相关推荐

    Tomcat研究之ClassLoader.pdf

    - `tomcat-util.jar`:Tomcat工具类,可能被某些Connector组件使用。 - `tomcat-warp.jar`:用于Apache Server集成。 5. **Shared ClassLoader**:加载所有Web应用程序可见的类库,但对Tomcat自身是不可见的。...

    Tomcat:apache-tomcat-6.0.18

    5. **ClassLoader机制**:Tomcat使用自定义的ClassLoader来加载Web应用程序的类,确保不同应用之间的类隔离,防止冲突。 Tomcat 6.0.18版的特性包括: 1. **性能优化**:相对于之前的版本,6.0.18进行了性能调优,...

    Tomcat 5.0.18 ClassLoader source code insight

    3. **Common ClassLoader**:Tomcat的Common ClassLoader,加载`$CATALINA_BASE/common/lib`目录下的JAR文件,这些类库对所有Web应用都可见。 4. **Webapp ClassLoader**:每个Web应用程序都有自己的Webapp ...

    Tomcat启动顺序

    【标题】:Tomcat启动顺序 【描述】:Tomcat作为Apache软件基金会的开源Java Servlet容器,其启动过程是理解其工作原理的关键部分。Tomcat的启动顺序涉及到多个层次的加载,从Bootstrap类开始,逐步加载系统配置、...

    tomcat 类加载机制 —— ClassLoader

    1. **Bootstrap ClassLoader**:这是JVM启动时的第一个类加载器,负责加载JDK核心库(rt.jar)中的类。 2. **Extension ClassLoader**:加载JRE扩展目录(java.ext.dirs)下的JAR文件。 3. **System ClassLoader**...

    JAVA加密工具

    可以将CLASS文件加密,用反编译工具反编译不过来. 不是混淆器,是加密.比混淆器好很多. ...agentlib:c:\windows\classloader %JAVA_OPTS%,保存setenv.bat文件,重新启动Tomcat后就可以正确加载加密类了。

    Java SE: ClassLoader in depth

    在Java中,有几种不同类型的ClassLoader: - 启动类加载器(Bootstrap ClassLoader):负责加载JAVA_HOME/lib目录下的,或被-Xbootclasspath参数指定路径中的,并且是虚拟机识别的类库到JVM中。 - 扩展类加载器...

    tomcat启动原理解析

    **Tomcat启动原理解析** Tomcat作为一款广泛使用的开源Java应用服务器,其启动过程涉及了众多关键步骤和组件的协同工作。理解Tomcat的启动原理对于开发者来说至关重要,不仅有助于提升性能优化的能力,还能在遇到...

    Java ClassLoader定制实例

    当JVM启动时,它会有一个初始的Bootstrap ClassLoader,用于加载JRE核心类库。接着,Extension ClassLoader加载扩展类库,然后是App ClassLoader加载应用程序的类路径下的类。每个ClassLoader都有其父ClassLoader,...

    tomcat7启动或运行报错

    ### Tomcat7启动或运行时报错:`java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl` #### 问题概述 在使用Tomcat7部署Web应用的过程中,可能会遇到启动或者运行时出现以下错误提示: ``` java....

    ClassLoader

    双亲委托机制是`ClassLoader`体系中的一个重要特性,它确保了核心库的加载只由顶层的启动类加载器进行。这一机制的工作流程如下: 1. **当一个类加载器收到类加载请求时**,它首先不会尝试自己去加载这个类,而是将...

    JVM ClassLoader简析

    Bootstrap ClassLoader是JVM启动时的第一个ClassLoader,负责加载JDK的`&lt;JAVA_HOME&gt;\lib`目录下的核心类库,如rt.jar。Extension ClassLoader则负责加载`&lt;JAVA_HOME&gt;\lib\ext`目录下的扩展类库。Application ...

    理解Java ClassLoader机制

    Bootstrap ClassLoader是JVM启动时的第一个加载器,负责加载JDK的根目录下`jre/lib/rt.jar`等核心类库。Extension ClassLoader则负责加载`jre/lib/ext`目录下的扩展类库。最后,App ClassLoader加载的是应用类路径...

Global site tag (gtag.js) - Google Analytics