4

我用来wsimport从特定的WSDL. 我尝试了 Java 10,但握手失败,然后我尝试了 Java 9,一切正常。

我观察了使用wireshark的通信,原因很清楚,我通信的服务器仍然使用 TLSv1,我猜 Java 10wsimport不再容忍这种情况(至少默认情况下不会),尽管 9 可以。

我对服务器无能为力,所以问题变成了如何运行具有 TLSv1 容差的 Java 10 wsimport?

4

1 回答 1

2

进行了更多调查,最有用的测试是使用ssl labs完成的。事实证明,服务器支持弱密码套件:TLS_RSA_WITH_3DES_EDE_CBC_SHA.

通过添加以下 java 选项解决了该问题:

-Dhttps.cipherSuites=SSL_RSA_WITH_3DES_EDE_CBC_SHA

无法将密码套件指定为TLS_RSA_WITH_3DES_EDE_CBC_SHA。Java 的命名约定要求它被称为SSL_RSA_WITH_3DES_EDE_CBC_SHA.

旁注:上面@nullpointer 评论中提到的错误在我尝试的所有三个版本中都已解决:Java 9/10/11。

于 2018-08-03T05:28:32.263 回答