尝试使用 DataStage 11.7 连接到 REST API 时,我不断遇到以下问题:
CDIER0961E: REST 步骤无法调用 REST 服务,原因=javax.net.ssl.SSLException:无法识别的 SSL 消息,纯文本连接?
场景如下:
我需要检索一个令牌,用于后续对 API 的所有调用。
令牌的检索是使用 POST 方法完成的,其中设置了自定义标头,请求正文包含连接到 API 的凭据。然后将其发布,API 会使用令牌发出响应。
在与 API 的开发人员联络后,请求的内容被确定为正确的格式,并且 SSL 证书被添加到密钥库中,但这些都对问题没有影响。
有谁遇到过这样的问题吗?可以建议如何解决这个问题吗?
答案1
我设法自己解决了这个问题。这是一个 TLS/SSL 版本问题,DataStage 使用的 TLS/SSL 版本比我连接的服务器旧得多。JVM 使用的是最新版本,我通过在 Hierarchical Stage 中添加以下可选参数覆盖了 DataStage 使用的默认版本:
-Dcom.ibm.jsse2.overrideDefaultTLS=true -Dcom.ibm.jsse2.overrideDefaultProtocol=TLSv12
只要您的请求格式正确,服务器就会返回 200 响应。