tomcat7 与 tomcat8 加载 jar包的顺序

简介: tomcat7 与 tomcat8 加载 jar包的顺序

本文为博主原创,转载请注明出处:

  最近在进行服务的环境升级,将 服务的tomcat7升级到 tomcat8;当把 tomcat 升级到 tomcat8 的时候,进行服务启动异常,报 jar 包冲突的 异常,但是尝试几次之后,偶尔也有成功的概率,便推测 是 jar 包加载的顺序不对,因为 当相同路径的类或资源在加载之后,便不会进行再加载,由于项目中有两个相同的全限定名的类,在服务启动的时候,加载错误的类的时候,便报jar包冲突。

  于是便设置 classpath,但发现设置 classpath 也没有生效,通过查看资料以及阅读 tomcat 的源码,发现 tomcat7 与 tomcat8 的类加载逻辑是不一样的,tomcat 7  在加载jar包 路径下的资源后,会对 所有的 jar包根据 字母顺序进行排序,字母在前面的 jar 包会优先加载,

tomcat7加载 jar包顺序

  主要代码如下:

  list是获得了应用中WEB-INF下lib下所有jar包的路径。我们跟踪进去发现`FileDirContext` 的list方法中有下面这一句:

 

tomcat8加载

  主要的代码:

  

  进一步继续,直接file.list获取过滤jar,并没有排序


tomcat8 设置优先加载顺序

  

 

  code如下:

<Resources>
     <PreResources base="d://webapps/ROOT/WEB-INF/lib/sms.reyo.cn.jar"
                   className="org.apache.catalina.webresources.JarResourceSet"
                   webAppMount="/WEB-INF/classes"/>
 </Resources>

 


 

标签: tomcat

目录
相关文章
|
19天前
|
Java Linux Maven
java依赖冲突解决问题之容器加载依赖jar包如何解决
java依赖冲突解决问题之容器加载依赖jar包如何解决
|
1月前
|
前端开发 Java 编译器
classpath中存在多个jar存在同限定名的class classloader会如何加载
总之,合理组织类路径和使用现代化的构建工具,可有效避免类加载冲突,保证应用的稳定运行。
58 8
|
2月前
|
弹性计算 Java Serverless
Serverless 应用引擎操作报错合集之上传自定义JAR包,启动时报错,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
Java 应用服务中间件 API
java 启动查看jar包加载顺序并设置classpath
java 启动查看jar包加载顺序并设置classpath
109 0
|
13天前
|
网络协议 Java 应用服务中间件
tomcat配置域名及HTTPS
tomcat配置域名及HTTPS
|
19天前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
4月前
|
安全 网络协议 应用服务中间件
tomcat 状态页 及常见配置
tomcat 状态页 及常见配置
|
26天前
|
缓存 Java 应用服务中间件
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
这篇文章详细介绍了在SpringMVC中创建JSP页面的全过程,包括项目的创建、配置、Tomcat的设置,以及如何实现页面跳转和配置模板解析器,最后还对比了JSP和HTML模板解析的差异。
SpringMVC入门到实战------七、SpringMVC创建JSP页面的详细过程+配置模板+实现页面跳转+配置Tomcat。JSP和HTML配置模板的差异对比(二)
|
17天前
|
Java 应用服务中间件 开发工具
[App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
[App Service for Windows]通过 KUDU 查看 Tomcat 配置信息
|
17天前
|
Java 应用服务中间件 Windows
【App Service for Windows】为 App Service 配置自定义 Tomcat 环境
【App Service for Windows】为 App Service 配置自定义 Tomcat 环境