【问题标题】:How to open SSL streams to multiple URLs properly with Jackson (Java)?如何使用 Jackson (Java) 正确打开 SSL 流到多个 URL?
【发布时间】:2021-07-27 11:41:03
【问题描述】:

我正在开发一个小型 java 应用程序,该应用程序从开放的在线数据库请求 json 数据,我遇到了第一个 URL 在打开其流时没有问题的问题(不管我从哪个 URL 开始with),但是一旦我尝试使用第二个,我就会得到“javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure”。

我似乎在互联网上找不到任何提到这个的东西,这对我来说有点奇怪,所以我想问一下如何正确地做到这一点,因为我使用 Jackson 来处理传入的 Json 数据,而它有一个只处理 URL 的方法,所做的只是调用 openStream() 导致这个问题。我使用 Java 11 作为记录。

编辑:也忘了提到它是一个 JavaFX 应用程序,如果这可能是一个问题

【问题讨论】:

  • 您刚刚收到 SSL 经典错误。由于 Jackson 的文档记录很差,而且您也没有提供任何代码,所以可以去他们的邮件列表询问 SSL 示例代码或配置选项。
  • 问题不在于杰克逊,我刚刚提到它是因为我想使用这些 URL。 InputStream stream1 = new URL(URL1).openStream(); InputStream stream2 = new URL(URL2).openStream();已经不行了
  • 如您所说,它似乎与杰克逊无关,您是否尝试过从浏览器或 curl 等工具下载 json?
  • 您能否在打开与第二个 URL 的连接之前尝试从第一个 URL 关闭 URLConnection 并检查是否有效。网址是公开的吗,可以分享吗?
  • 如果您使用 11.0.1 并与需要 SNI 的服务器通信,则可能与 stackoverflow.com/questions/53913758/… 相同,在这种情况下,我的重新测试表明 11.0.2 可以解决此问题。

标签: java ssl jackson sslhandshakeexception


【解决方案1】:

感谢@dave_thompson_085,我发现这是 Java 11.0.1 的一个问题,更新(在我的例子中是 11.0.11)解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2016-09-26
    相关资源
    最近更新 更多