栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

由于公司一中一个老项目使用jdk1.7导致http访问报错

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

由于公司一中一个老项目使用jdk1.7导致http访问报错

场景:使用httpclient调用供应商的接口,我自己电脑上运行没问题,提交代码后,同事拉取调用报错
报错:

javax.net.ssl.SSLException: Received fatal alert: protocol_version
	at sun.security.ssl.alerts.getSSLException(alerts.java:208)
	at sun.security.ssl.alerts.getSSLException(alerts.java:154)
	at sun.security.ssl.SSLSocketImpl.recvalert(SSLSocketImpl.java:1959)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
	at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:533)

原因:原来是jar版本问题,项目使用的httpclient版本为4.3.2,不支持jdk1.7。我电脑使用的是jdk1.8,但是服务器其实使用的jdk1.7,所以我电脑上跑就没问题,同事电脑上就报错。

解决方案:
由于jar包不是我一个人用,所以没改版本。而使用jdk自带的URLConnection(项目很多地方都用的这个。。。),但是又出了一个问题:

javax.net.ssl.SSLException: Received fatal alert: protocol_version
	at sun.security.ssl.alerts.getSSLException(alerts.java:208) ~[?:1.7.0_67]
	at sun.security.ssl.alerts.getSSLException(alerts.java:154) ~[?:1.7.0_67]
	at sun.security.ssl.SSLSocketImpl.recvalert(SSLSocketImpl.java:1959) ~[?:1.7.0_67]
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) ~[?:1.7.0_67]
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) ~[?:1.7.0_67]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) ~[?:1.7.0_67]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) ~[?:1.7.0_67]
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) ~[?:1.7.0_67]

原因:还是jdk的问题,jdk1.7默认使用TLSv1.1。但是供应商和我这边的不一样;如果他们用的是jdk1.8,则他们那边用的是TLSv1.2。

解决方法:手动设置TLS;博客

SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null,null,null);
SSLContext.setDefault(sslContext);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号