jdk版本问题

原demo jdk 15版本,把代码移植到jdk1.8的项目里面,出现报错

javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:214)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1958)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1915)
	at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1898)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1419)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1396)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
	at HttpClient.requestServer(HttpClient.java:167)
	at HttpClient.sendJsonString(HttpClient.java:125)
	at Util.doPost(Util.java:204)
	at TranU1003.main(TranU1003.java:41)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
	at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:90)
	at sun.security.validator.Validator.getInstance(Validator.java:179)
	at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312)
	at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1508)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:215)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1024)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:954)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1065)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1384)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1412)
	... 8 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
	at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
	at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
	at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
	at sun.security.val

debug很久没找到有效的解决方法。
实际上换一个旧的jdk1.8版本就好了


版权声明:本文为Tekim原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。