我的插件中有一段代码如下:
String url = "https://...";
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setDoOutput(true);
con.connect();
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
writer.flush();
writer.close();
当我在独立的 Java 应用程序中使用这段代码时,它工作得很好。但是当我尝试从插件中运行它时它会抛出以下异常:
javax.net.ssl.SSLException: Unsupported record version SSLv2Hello
at sun.security.ssl.InputRecord.checkRecordVersion(InputRecord.java:552)
at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:565)
at sun.security.ssl.InputRecord.read(InputRecord.java:529)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1343)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
at test.plugin.Activator.testSSLConnection(Activator.java:57)
at test.plugin.Activator.start(Activator.java:42)
我应该配置什么以使代码在插件中工作? 我没有在此处或 eclipse 论坛上找到与 SSL 相关的 eclipse 插件上下文中的任何解决方案。
最佳答案
找到了这个问题的解决方案:
服务器运行在 Java 7 上,而客户端运行在 Java 8 上。 一旦我将我的 eclipse 运行时切换到 Java 7,问题就解决了。
关于java - 从 eclipse 插件中连接到 HTTPS 会抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27492367/