具有https域的JiraClient(java)的SSL握手异常

时间:2019-02-12 10:27:35

标签: java jira

我正在尝试访问位于https://domain/JIRA的jira。 我收到以下异常

java.nio.channels.ClosedChannelException: null
    at sun.nio.ch.SocketChannelImpl.ensureReadOpen(SocketChannelImpl.java:257) ~[na:1.8.0_102]
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:300) ~[na:1.8.0_102]
    at org.apache.http.nio.reactor.ssl.SSLIOSession.receiveEncryptedData(SSLIOSession.java:449) ~[atlassian-httpclient-plugin-0.23.0.jar:na]
    at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:503) ~[atlassian-httpclient-plugin-0.23.0.jar:na]
    at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:122) ~[atlassian-httpclient-plugin-0.23.0.jar:na]
    at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:228) [atlassian-httpclient-plugin-0.23.0.jar:na]
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:282) [atlassian-httpclient-plugin-0.23.0.jar:na]
    at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106) [atlassian-httpclient-plugin-0.23.0.jar:na]
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:590) [atlassian-httpclient-plugin-0.23.0.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102]
at com.google.common.base.Throwables.propagate(Throwables.java:156)
    at com.atlassian.httpclient.apache.httpcomponents.ApacheAsyncHttpClient$6.apply(ApacheAsyncHttpClient.java:402)
    at com.atlassian.httpclient.apache.httpcomponents.ApacheAsyncHttpClient$6.apply(ApacheAsyncHttpClient.java:396)
    at com.atlassian.util.concurrent.Promises$Of$2.apply(Promises.java:259)
    at com.atlassian.util.concurrent.Promises$Of$2.apply(Promises.java:256)
    at com.atlassian.util.concurrent.Promises$2.onFailure(Promises.java:162)
    at com.google.common.util.concurrent.Futures$7.run(Futures.java:1074)
    at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:253)
    at com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:161)
    at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:146)
    at com.google.common.util.concurrent.AbstractFuture.done(AbstractFuture.java:235)
    at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:190)
    at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:68)
    at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient$1$2.run(SettableFuturePromiseHttpPromiseAsyncClient.java:59)
    at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient$ThreadLocalDelegateRunnable$1.run(SettableFuturePromiseHttpPromiseAsyncClient.java:197)
    at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient.runInContext(SettableFuturePromiseHttpPromiseAsyncClient.java:90)
    at com.atlassian.httpclient.apache.httpcomponents.SettableFuturePromiseHttpPromiseAsyncClient$ThreadLocalDelegateRunnable.run(SettableFuturePromiseHttpPromiseAsyncClient.java:192)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLException: Received fatal alert: handshake_failure
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1666)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1634)
    at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1800)
    at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1083)
    at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:907)
    at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:271)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:326)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:507)
    at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:122)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:164)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:339)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:317)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:590)
    ... 1 more

我可以使用IP而不是https://domain访问JIRA 我已经引用了网站上的[https://community.atlassian.com/t5/Answers-Developer-Questions/Jira-rest-java-client-https-problem/qaq-p/511563]和各种主题,但无法找到任何解决方案。 我应该怎么做才能摆脱这种例外情况?

谢谢

1 个答案:

答案 0 :(得分:0)

通过将jdk版本更改为jdk8u161 +解决了该问题。 如果您遇到类似情况,请参考以下链接:

Atlassian documention handshake exception