关于JSoup如何解决Received fatal alert: handshake_failure异常与Unsupported major.minor version XXX的异常
本文详细解析了HTTPS握手异常(Received fatal alert: handshake_failure)与Unsupported major.minor version错误的原因,主要由JDK版本过低或编译与运行JDK版本不一致引起。提供了升级JDK版本及调整Eclipse项目配置的解决方案。
关于JSoup如何解决Received fatal alert: handshake_failure异常与Unsupported major.minor version XXX的异常
文章信息
- 原文链接:https://jiayq.blog.csdn.net/article/details/84345022
- 发布时间:2018-11-22 17:20:43
- 阅读量:2
- 分类:java专栏收录该内容, 订阅专栏
- 标签:#JSoup异常, #Received fatal alert: handshake_fai, #Unsupported major.minor version 52., #jdk版本, #切换库文件
摘要
文章浏览阅读2.4k次。本文详细解析了HTTPS握手异常(Received fatal alert: handshake_failure)与Unsupported major.minor version错误的原因,主要由JDK版本过低或编译与运行JDK版本不一致引起。提供了升级JDK版本及调整Eclipse项目配置的解决方案。
https握手异常与jdk版本异常
- 1.Received fatal alert: handshake_failure
- 2.Unsupported major.minor version XXX
1.Received fatal alert: handshake_failure
描述:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1837)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1019)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:449)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:434)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:181)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:170)
原因:
jdk的版本太低,或者jvm的版本太低,只能发送ssl1的请求,但是响应的是ssl2或者更高版本的响应,导致ssl握手失败。
解决方案:
增加jdk的版本(最简单),如果非要用低版本,网上也有解决的方案。
步骤:(eclipse)

右键->build path->configure build path

Add Library

next







或者不用选择:


不删除也可以
但有可能引起混乱

2.Unsupported major.minor version XXX
原因:编译jdk版本与运行的jdk版本不一致
右键->build path->configure build path


然后一直确定就可以,最后会重新编译项目。
本文由作者按照 CC BY 4.0 进行授权