无法获取元数据:无法执行 OData 元数据请求。将 s4sdk 部署到 Cloud Foundry 后出错

Unable to fetch the metadata : Failed to execute OData Metadata request. error after deploying s4sdk to cloud foundry

我在将 s4sdk 应用程序部署到 cf 后调用 /businesspartners api 时收到以下响应。

我能够通过在本地部署(在 ALLOW_MOCKED_AUTH_HEADER:true 之后)来测试这个应用程序,所以我将应用程序部署到 cloud foundry,并尝试使用目的地服务(env 的 insted),下面是我遵循的步骤。

第 1 步:设置云连接器

第 2 步:创建 xsuaa 和目的地的服务实例

第 3 步:在应用程序 yaml 文件中引用此内容

第四步:推送包到云端。 (mvn clean package; cf push)

第 5 步:现在我继续并配置目的地; (应用>>服务实例>>目的地)

这里我无法测试连接性,当我按下 "check connection" 时出现以下错误: 如何测试此连接?

第 6 步:相信连接正常,我继续并重新启动应用程序,并开始测试 api。该应用程序已启动,但当我到达上面(图 1)错误时。

第 7 步:尝试查看日志,发现以下错误

谁能帮忙解决一下这个问题..?

  1. 尝试设置 "ALLOW_MOCKED_AUTH_HEADER" -> 同样的两个问题
  2. 尝试删除目标中的属性,但出现同样的错误。
  3. 无法尝试在 CF 中使用 destinations 变量,因为我们的 S4 系统未公开,因此在本地尝试它可以工作。
  4. 尝试使用 Neo,它在本地和云端都有效。
  5. 但是推到CF后,没办法运行

谢谢, 吉里什

您还需要将您的应用程序绑定到 Cloud Foundry 上的 connnectivity 服务实例,以通过云连接器进行通信。在错误消息 "Failed to get connectivity service credentials: no service binding found".

中提到了这一点,尽管有点隐藏
  1. 使用 cf create-service connectivity lite my-connectivity 创建服务实例。
  2. 将此实例的名称添加到 manifest.yml 文件中的 services 部分。

如果您之后仍然遇到问题,请尝试从您的目的地中删除 proxyPortproxyHost 属性。这些应该不是必需的。

有关 SAP Cloud Platform Cloud Foundry 上的本地连接的更多详细信息,请参阅 following blog post