【问题标题】:java.lang.NoClassDefFoundError: sun/security/ssl/HandshakeStateManagerjava.lang.NoClassDefFoundError: sun/security/ssl/HandshakeStateManager
【发布时间】:2019-12-22 10:49:30
【问题描述】:

我目前正在使用 NetBean IDE 中的 Web 服务。 我正在使用Apache HttpClientGET 请求发送到一些RESTful API。 问题是,它在 junit 测试中运行良好,但是当我编译它并 delpoy 到 glassfish 时,它显示以下错误:

Info:   wsimport successful
Severe:   sun/security/ssl/HandshakeStateManager
java.lang.NoClassDefFoundError: sun/security/ssl/HandshakeStateManager
    at sun.security.ssl.Handshaker.init(Handshaker.java:282)
    at sun.security.ssl.Handshaker.<init>(Handshaker.java:242)
    at sun.security.ssl.ClientHandshaker.<init>(ClientHandshaker.java:160)
    at sun.security.ssl.SSLSocketImpl.initHandshaker(SSLSocketImpl.java:1329)
    at sun.security.ssl.SSLSocketImpl.doneConnect(SSLSocketImpl.java:690)
    at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:569)
    at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:110)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:393)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)

这是我发送GET 请求的代码。有什么问题?

protected String getResponse(String url) throws IOException, ProviderNotAvailableException{
        HttpGet request = new HttpGet(url);

        CloseableHttpResponse response = httpClient.execute(request);

        HttpEntity entity = response.getEntity();

        if (entity != null) {
            String result = EntityUtils.toString(entity);
            return result;
        } else {
            throw new ProviderNotAvailableException("Http entity is null.");
        }
}

我的 jdk 版本是 1.8,NetBean 版本是 11.0。同样,它在 junit 测试中运行良好。

【问题讨论】:

  • 问题可能至少是以下之一:缺少或不同的测试依赖项,或者您正在使用的服务器版本与您拥有的 jdk 版本存在错误。无论如何,知道你的 jdk 的更新和你 glassfish 的版本是有用的。
  • @Renato 我使用的是升级版本 221,现在可以了。谢谢。

标签: java wsdl2java


【解决方案1】:

我曾经使用JDK v1.8。升级到 1.8u221 问题解决了。

【讨论】:

    猜你喜欢
    • 2021-04-16
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2013-08-07
    • 2014-06-08
    相关资源
    最近更新 更多