Linux上的HttpClients.createDefault()错误

时间:2016-07-31 14:14:23

标签: java linux

我编写了一个使用apache httpclient的java程序,该程序在我的windows上运行良好,但是在我的linux服务器上发生了错误。以下是例外。

关键代码是:

CloseableHttpClient httpclient = HttpClients.createDefault(); 

有错误

 Exception in thread "main" org.apache.http.ssl.SSLInitializationException: TLS SSLContext not available
        at org.apache.http.ssl.SSLContexts.createDefault(SSLContexts.java:58)
        at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
        at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
        at yan.javatips.closure.HttpTest2.main(HttpTest2.java:26)
        Caused by: java.security.NoSuchAlgorithmException: TLS SSLContext not available
        at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
        at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156)
        at org.apache.http.ssl.SSLContexts.createDefault(SSLContexts.java:54)
        ... 3 more

jar文件httpclient 4.5.2
jdk版本1.8.0_101

这个问题让我很恼火......

我在windows上运行eclipse(程序运行良好)来附加httpcore src并找到错误代码

    public static SSLContext createDefault() throws SSLInitializationException {
    try {
        final SSLContext sslcontext = SSLContext.getInstance(SSLContextBuilder.TLS);
        sslcontext.init(null, null, null);
        return sslcontext;
    } catch (final NoSuchAlgorithmException ex) {
        throw new SSLInitializationException(ex.getMessage(), ex);
    } catch (final KeyManagementException ex) {
        throw new SSLInitializationException(ex.getMessage(), ex);
    }
}

所以我认为SSLContext.getInstance在我的远程linux服务器上运行错误,但我不知道原因。它在窗户上确实很奇怪。

0 个答案:

没有答案