问题描述
我正在使用 java 1.8、Spring Boot 和 SAP SDK 开发 SAP 扩展应用程序。 我正在 SAP BTP(SAP 云平台)中部署此应用程序。 我的 S4HANA 实例是试用版,它在 CAL 中运行。
执行以下步骤后,我的 Spring Boot 应用程序可以与本地的 S4HANA 实例通信。
- 在 /etc/hosts 中提供了条目
- 使用 open-ssl 命令导出证书
- 将导出的证书添加到 Java CACerts
- 在应用程序中使用的域名作为目的地
我已将相同的应用程序部署到 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 以获取进一步参考。