java - 从 eclipse 插件中连接到 HTTPS 会抛出异常

标签 java eclipse ssl https eclipse-plugin

我的插件中有一段代码如下:

    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/

相关文章:

java - Spring Autowire 在同一类中创建 Bean 结果为 :Requested bean is currently in creation Error*

java - 如何使用默认应用程序从 jar 文件中打开文件

java - 由于 org.eclipse.jst.jee.server :<project> missing,Eclipse juno 不会部署到 tomcat 7

java - 如何使用AWS SQS和SNS向网站发送通知消息?

java - hibernate 中的多对多

android - Eclipse Android SDK - 'Building Workspace' 死锁

android - Eclipse 构建场所

java - BigInteger 到十六进制冒号表示法

php - 如何从 PHP 中的 SSL 证书文件中获取到期日期

node.js - 通过 HTTPS 运行 nodejs 应用程序