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

1.问题描述

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



2.解决办法:

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

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


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


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

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


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值