JAVA war包部署到tomcat,jar包冲突问题的解决办法,以及原理剖析。

1.问题描述

如果我们的java工程需要引入javax.servlet,jsp-api 等jar包。将工程编译为war包后,部署到tomcat服务器上当访问这些包相关类时就会报错,错误提示如下。原因就是我们war包里面的jar包与tomcat依赖的jar包冲突了。

JAVA war包部署到tomcat,jar包冲突问题的解决办法,以及原理剖析。_第1张图片


2.解决办法:

2.1 查看哪些jar包出现了冲突:

tomcat安装目录下有个lib文件夹,war包中同样有个lib文件夹,两个文件夹中相同的jar包就是冲突的jar包。


2.2 解决版本就是将war包中的冲突jar包删除掉就可以了。(对于maven工程,将pom依赖 添加provided,war中就回删除对应的jar包。)


3.为什么war包中删除了对应的jar包,只要tomcat中有同样的jar包程序就能正常运行?

war包实质上包含了开发的java代码编译出的class文件,以及依赖的jar包。编译时这些jar包的作用只是起到检查import文件是否找得到的作用,对生成class文件是没有作用的。因此最后程序运行时,使用war包中的jar包还是用tomcat中的jar包是一样的效果。


你可能感兴趣的:(java)