打开连接失败:javax.net.ssl.SSLException:无法识别的ssl消息,纯文本连接?
我已经使用SOAP UI创建了一个rest mockservice。 我正试图从我的java类连接它。但这是错误的打开连接失败:javax.net.ssl.SSLException:无法识别的ssl消息,纯文本连接?,java,ssl,Java,Ssl,我已经使用SOAP UI创建了一个rest mockservice。 我正试图从我的java类连接它。但这是错误的 Open connection failed: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source) sun.security.ssl.InputRecor
Open connection failed: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
sun.security.ssl.InputRecord.handleUnknownRecord(Unknown Source)
sun.security.ssl.InputRecord.read(Unknown Source)
sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
我不确定我会错在哪里
以下是守则-
java.net.URL url = new URL(null, address,new sun.net.www.protocol.https.Handler());
connection = (javax.net.ssl.HttpsURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "text/xml");
connection.setRequestMethod("GET");
connection.connect();
我尝试连接的URL是-,如果您想使用HTTPS,那么 HTTPS(HTTP over SSL)协议处理程序有自己的一组 特性:
https.proxyHost
https.proxyPort
正如你可能猜到的,这些工作与他们的工作方式完全相同
http对应,因此我们将不详细介绍,只提及
这一次,默认端口号是443,而“非
“代理主机”列表中,HTTPS协议处理程序将使用与
http处理程序(即http.NoProxyHosts)
资源链接:
解决方案1:
将以下内容添加到JAVA\u OPTS
环境变量中:
-Djsse.enableSNIExtension=false
重新启动群组实例
资源链接:
解决方案2:
我认为这是由于与客户机建立的连接不安全造成的。 这是因为您正在与HTTP服务器而不是HTTPS服务器交谈。可能您没有为HTTPS使用正确的端口号 功劳归于@ 资源链接: 解决方案3: 如果使用SMTP域名,则属性必须为true
props.put("mail.smtp.socketFactory.fallback", "true"); // Make it true
您也可以通过此链接:您正在混合HTTP和HTTPS内容。模拟服务是否通过SOAP UI通过SSL公开?您只需要将地址变量方案更改为HTTPS。SOAP UI是否通过HTTP公开模拟?您必须使用URLConnection而不是HttpsURLConnectionNo我的mockservice不是通过SSL公开的,我如何才能做到这一点?请建议我。这将作为http请求工作,但我想将其设置为https。@然后使用正确的端口号。不要简单地发布代码片段,请在回答中添加一些说明。像这样的答案经常被删除。解决方案3最终对我有效。我认为这是因为与客户端计算机建立的连接不安全。这是因为您正在与HTTP服务器而不是HTTPS服务器交谈。可能您没有为HTTPS使用正确的端口号。
props.put("mail.smtp.socketFactory.fallback", "true"); // Make it true