javax.xml.soap.SOAPException:javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接

时间:2017-03-01 12:19:26

标签: java web-services ssl soap

我是java中SOAP调用的新手。我收到以下错误并搜索了许多网站仍然没有找到解决方案。我的代码是

        System.setProperty("https.protocols", "TLSv1.2");
        System.setProperty("javax.net.ssl.keyStore", "C://key//xxx.ks")

        System.setProperty("javax.net.ssl.keyStorePassword", "pass");
        System.setProperty("javax.net.debug", "ssl,handshake,record");

        Authenticator.setDefault(new MyAuthenticator("xxx", "pass"));

        // Create the connection
        SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
        SOAPConnection conn = scf.createConnection();

        // Create message
        MessageFactory mf = MessageFactory.newInstance();
        SOAPMessage msg = mf.createMessage();

        SOAPMessage rp = conn.call(sOAPMessage, urlval);

        System.out.println("\nXML response\n");

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        rp.writeTo(out);
        String strMsg = new String(out.toByteArray());

        String soapResponse = strMsg.replaceAll("&", "&");

        System.out.println(soapResponse);

        // Close connection
        conn.close();

控制台是:

 %% No cached client session
 *** ClientHello, TLSv1
 RandomCookie:  GMT: 1471527313 bytes = { 53, 166, 64, 11, 65, 245, 99, 24,       77, 5, 82, 157, 214, 247, 180, 115, 96, 249, 213, 50, 46, 30, 229, 107, 186,      143, 213, 114 }
 Session ID:  {}
 Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA,      TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
 Compression Methods:  { 0 }
 Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2,    secp192r1, secp224r1, sect233k1, sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1}
 Extension ec_point_formats, formats: [uncompressed]
 ***
 main, WRITE: TLSv1 Handshake, length = 149
 main, received EOFException: error
 main, handling exception: javax.net.ssl.SSLHandshakeException: Remote host        closed connection during handshake
 main, SEND TLSv1 ALERT:  fatal, description = handshake_failure
 main, WRITE: TLSv1 Alert, length = 2
 main, called closeSocket()
 main, called close()
 main, called closeInternal(true)
 main, called close()
 main, called closeInternal(true)
 main, called close()
 main, called closeInternal(true)

请帮我找到解决此错误的方法。

感谢您提前......

0 个答案:

没有答案