记一篇JAR冲突的问题:Inceptor-Ddriver-4.7.1

吐槽背景:

前阵子领导要求一应服务上Docker,其中包含一个连接Hadoop集群,认证kerberos后通过将SQL传给Inceptor(hive)查数据这么一个功能。

老项目部署条件是:Tomcat7 + 行内框架(类似SSM) + JDK1.7.0_79 + Linux
新环境是把 Tomcat7 升级到 Tomcat8,JDK升级到 Open1.8,加Docker;

本来是想就相当于把部署的东西平移到docker上,换汤不换药,稀松平常就好,结果因为 Driver 驱动包引发了一个血案!

InceptorDriver 驱动包里有大量的非依赖方式引入的包,导致 mvn dependency 根本查不出是哪里有冲突,而tomcat8 又会因为环境问题导致加载类顺序不同使项目在这边好,到了服务器上就不行的问题,然后一报错就是sun.sec…某个类或方法找不到。

最开始通过调整 tomcat8 的 Context.xml 的 preresource 来优先加载有冲突的jar,但是行里投产tomcat这种介质是一致的还不许改,就算硬改,当容器重启时,从新拉介质又完蛋。。。

最终还是一个同事因为他连接的hbase 没有引用InceptorDriver 只引用了Hadoop-client(厂商提供的,auth、common等集合体)我突然想到了 InceptorDriver 里面可能有与Hadoop-Auth重合的部分。因为在调整tomcat8的Context.xml时,将hadoop-auth这个jar优先加载可以回避这个问题,然后我将 InceptorDriver 解压一看,果然如我所料,手动将 InceptorDriv

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值