无法从 SAP BTP 目标服务连接到 CAL 中的 Trial S4Instance

问题描述

我正在使用 java 1.8、Spring Boot 和 SAP SDK 开发 SAP 扩展应用程序。 我正在 SAP BTP(SAP 云平台)中部署此应用程序。 我的 S4HANA 实例是试用版,它在 CAL 中运行。

执行以下步骤后,我的 Spring Boot 应用程序可以与本地的 S4HANA 实例通信。

  1. 在 /etc/hosts 中提供了条目
  2. 使用 open-ssl 命令导出证书
  3. 将导出的证书添加到 Java CACerts
  4. 在应用程序中使用的域名作为目的地

我已将相同的应用程序部署到 SAP BTP 并从子域 -> 空间 -> 实例 -> 目的地配置目的地

这里我只能提供 IP 地址,因为域名无法识别,并提供了我在本地使用的证书。但它不起作用,应用程序失败并显示以下错误

2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT Caused by: java.security.KeyStoreException: CERTIFICATE not found
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     at java.security.KeyStore.getInstance(KeyStore.java:851) ~[na:1.8.0_281]
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     at com.sap.cloud.sdk.cloudplatform.connectivity.ScpCfDestination.getKeyStore(ScpCfDestination.java:257) ~[connectivity-scp-cf-2.1.2.jar:na]
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     ... 63 common frames omitted
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT Caused by: java.security.NoSuchAlgorithmException: CERTIFICATE KeyStore not available
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     at sun.security.jca.GetInstance.getInstance(GetInstance.java:159) ~[na:1.8.0_281]
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     at java.security.Security.getImpl(Security.java:697) ~[na:1.8.0_281]
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     at java.security.KeyStore.getInstance(KeyStore.java:848) ~[na:1.8.0_281]
   2021-04-05T22:04:24.42+0530 [APP/PROC/WEB/0] OUT     ... 64 common frames omitted

看起来像是提供证书的问题。请提供输入来帮助我解决此问题。

解决方法

堆栈跟踪似乎表明您使用的是过时的 SAP Cloud SDK 版本。 它包含 jar 文件名 connectivity-scp-cf-2.1.2.jar,指示您使用版本 2.1.2

我们建议使用 SAP Cloud SDK 版本 3,这是与版本 2 相比的重大改进。查看 release notes 以获取进一步参考。