专业的JAVA编程教程与资源

网站首页 > java教程 正文

记一次Caused by: java.lang.NoSuchFieldError 排查过程

temp10 2024-10-26 15:14:50 java教程 11 ℃ 0 评论

错误现象

DF 函数里引用了httpclient jar包,用来请求外网,报错

Caused by: java.lang.NoSuchFieldError: INSTANCE
	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:151)
	at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:977)
	at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:56)
	at com.daojia.bigdata.map.GaoDei.evaluate(GaoDei.java:32)
	... 23 more

分析问题

1.此问题典型的jar包冲突,执行引用了的class类没有这个属性,导致报错了

记一次Caused by: java.lang.NoSuchFieldError 排查过程

2.找出代码里有问题的类,加载来源于哪个jar包

3. 分析代码里引用的jar包版本,是4.5.9,这个jar包在hive目录下也有,只是版本不一样,明显加载了4.2.5的这个,问题找到

4. 解决方法,把机器上已存在jar包升级,此方法不推荐,怕产生其它问题,第二个方法修改代码引用的jar包版本,和线上一致,问题解决

问题总结

所类问题NoSuchxx,都是一样的问题,都是加载了,不是我们想加载的类导致的,核心解决是找出有问题的类,从哪个jar包加载的,再处理问题,一味的去百度,解决不了自身的问题

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表